2016-06-22 5 views
0

Hallo Derzeit versuche ich Daten von CSV plotten, ich habe den Code, aber es ist nicht Kann HH nehmen: mm: ss MM-dd-yy, der Code, den ich habe, ist nur für float, aber nicht timestamp. Ich muss es grafisch darstellen, es ist aktueller Wert gegen die Zeit wie: "2016-05-15 00:00:00" "20" "2016-05-15 00:00:01" "22" und die Daten mein lokales Laufwerk ist in, und der Code ist wie folgt:Wie kann ich csv in JDBC mit Zeit zeichnen "HH: mm: ss MM-dd-yy" (wie importieren und plotten)

Dateileser:

public XYSeriesCollection createDataset() throws NumberFormatException, 
     IOException { 
    dataset = new XYSeriesCollection(); 
    try { 
     reader = new CSVReader(new FileReader("/usr/csv_dump.csv"),'\t'); 
     // Read the header and chuck it away 
     readNextLine = reader.readNext(); 

Importdaten:

 // Set up series 
     final XYSeries seriesX = new XYSeries("X"); 

     while ((readNextLine = reader.readNext()) != null) { 
      // add values to dataset 

      double Time = Double.valueOf(readNextLine[0]); 
      double X = Long.valueOf(readNextLine[1]); 
      seriesX.add(Time, X); 

     } 

     System.out.println(seriesX.getMaxX() + "; " + seriesX.getMaxY()); 

     dataset.addSeries(seriesX); 
    } catch (FileNotFoundException e) { 
     System.out.println("File not found!"); 
    } 
    return dataset; 
} 

public JFreeChart createChart(XYDataset dataset) 
     throws NumberFormatException, IOException { 
    chart = ChartFactory.createXYLineChart("Acceleration vs Time", // chart 
                    // title 
      "Time", // domain axis label 
      "Acceleration", // range axis label 
      dataset, // data 
      PlotOrientation.VERTICAL, // the plot orientation 
      true, // legend 
      true, // tooltips 
      false); // urls 

    return chart; 
} 

, wie Sie es nur Doppel lesen kann sehen, aber nicht die Zeit , wenn ich die Zeit importieren möchte (HH: MM: SS MM-TT-JJ), wie kann ich es tun?

Antwort

0

Ich bin nicht vertraut mit den JFreeChart-Klassen und wie genau diese Art von Plot funktioniert, aber da die XYSeries # add-Methode nur einen doppelten Wert als ersten Parameter akzeptiert, können Sie keinen Date-Wert übergeben . Daher glaube ich nicht, dass Ihr Ziel mit diesem Ansatz erreicht werden kann.

Es besteht die Möglichkeit, den Zeitstempel zu "interpretieren", indem der entsprechende String zu einem Date Objekt analysiert wird und seine Methode getTime() verwendet wird. ABER Achtung: getTime() gibt einen langen, keinen doppelten Wert zurück!

Eine Randnotiz: zum Parsen eines Strings zu einem Date-Objekt siehe DateFormat bzw. SimpleDateFormat und seine Parse-Methode (String s).

+0

Als Referenz wird ein Konkurrenzbeispiel [hier] angezeigt (http://stackoverflow.com/a/37975536/230513). – trashgod

Verwandte Themen