Конвертировать unix time в Date в JFreechart? - PullRequest
0 голосов
/ 03 октября 2019

Использование библиотеки JFreechart:

У меня есть двумерный двойной массив, и я хочу отобразить все метки времени (время Unix) в формате даты (например, дд / мм / гггг). Я могу сгенерировать график, но он показывает ось X (время) как время Unix. Я попытался сгенерировать X.Axis как DateAxis, но он просто показал его как один день в 1970 году и не смог распознать и преобразовать метки времени Unix в массиве. Как я мог решить эту проблему?

import org.jfree.data.xy.*;
import org.jfree.ui.ApplicationFrame;
import org.xml.sax.SAXException;
import org.apache.commons.lang3.ArrayUtils;
import java.lang.*;
import java.awt.Color;
import java.io.FileWriter;
import java.io.IOException;
import java.text.ParseException;

import javax.swing.JFrame;
import javax.xml.parsers.ParserConfigurationException;

import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

public class Verbrauchsdiagramm extends JFrame {

    private static final long serialVersionUID = -7794334701144090065L;
    double[][] A;
    double[][] B;
    XYLineAndShapeRenderer renderer;
    DefaultXYDataset dataset;
    NumberAxis xax;
    NumberAxis yax;
    XYPlot plot;
    JFreeChart chart2;
    ApplicationFrame punkteframe;
    ChartPanel chartPanel2;
    double xmin = 1514000000;
    double xmax = 1570000000;

    public Verbrauchsdiagramm() throws ParseException, SAXException, IOException, ParserConfigurationException {

        createDia();
    }

    public void createDia() throws ParseException, SAXException, IOException, ParserConfigurationException {
        convertArray();
        renderer = new XYLineAndShapeRenderer(true, false);
        dataset = new DefaultXYDataset();
        xax = new NumberAxis("Zeit in Unixtime");
        yax = new NumberAxis("Verbrauch");
        xax.setRange(xmin,xmax);
        plot = new XYPlot(dataset,xax,yax, renderer);
        chart2 = new JFreeChart(plot);
        punkteframe = new ApplicationFrame("Diagramm");
        chartPanel2 = new ChartPanel(chart2);
        dataset.addSeries("Bezug", A); 
        dataset.addSeries("Einspeisung", B); 

        punkteframe.setContentPane(chartPanel2);
        punkteframe.pack();
        punkteframe.setVisible(true);

    }



    public void convertArray() throws ParseException, SAXException, IOException, ParserConfigurationException {
        SDATReader convert = new SDATReader();
        A = convert.vecToArrayMS();
        B = convert.vecToArrayMST();


    }

    public static void main (String[] args) throws ParseException, SAXException, IOException, ParserConfigurationException {
        Verbrauchsdiagramm vdiagramm = new Verbrauchsdiagramm();

    }
}
...