2016-12-20 1 views
0

Ich habe eine Funktion, die ein Objekt zurückgibt, und es hat eine Date[] und float[].Wie erstellt man ein Diagramm mit einem Float-Array und einem Datumsfeld auf einem Panel?

Wie mache ich ein Liniendiagramm auf einem Panel mit diesen Arrays?

Ich habe Tutorials gelesen, wie man ein Diagramm erstellt, aber es ist nur für beide Ganzzahl auf X-Achse und Y-Achse.

Die Date-Objekte im Date[] haben keine spezifische time(00:00:00), es hat nur eine date(dd/MM/yyyy).

Auch ich benutze Java und Netbeans mit Jfreechart.

Hier sind einige der Daten im Array:

Date[]: 
30/11/2016, 
29/11/2016, 
28/11/2016, 
25/11/2016, 
24/11/2016, 
23/11/2016, 
22/11/2016, 
21/11/2016 

float[]: 
22789.77, 
22737.07, 
22830.57, 
22723.45, 
22608.49, 
22676.69, 
22678.07, 

Vielen Dank im Voraus!

+0

Sie können die Anzahl der Tage zwischen zwei Daten berechnen und verwende diesen Wert. – Berger

+0

@newbimyth Ist es JavaFX? – Nurjan

+0

@Nurzhan Ja, es ist Java – newbimyth

Antwort

1

Wenn es JavaFX ist (ich habe immer noch nicht die vollständige Antwort von Ihnen) und basiert auf dem Standard Beispiel können Sie so etwas wie dies versuchen:

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.chart.LineChart; 
import javafx.scene.chart.NumberAxis; 
import javafx.scene.chart.XYChart; 
import javafx.stage.Stage; 


public class LineChartSample extends Application { 

    @Override public void start(Stage stage) { 
     stage.setTitle("Line Chart Sample"); 
     //defining the axes 
     final NumberAxis xAxis = new NumberAxis(); 
     final NumberAxis yAxis = new NumberAxis(); 
     xAxis.setLabel("Date"); 
     //creating the chart 
     final LineChart<Number,Number> lineChart = 
       new LineChart<Number,Number>(xAxis,yAxis); 

     lineChart.setTitle("My sample chart"); 
     //defining a series 
     XYChart.Series series = new XYChart.Series(); 
     series.setName("Test float data"); 
     //populating the series with data 
     //And assumption has been made that your Date[] and float[] arrays are 
     //of the same size and have one to one mapping. 

     Date[] dates = ... // here is your Date[] array 
     float[] someData = ... // here is your float[] array 

     for (int i = 0; i < dates.length; i++) { 
      series.getData().add(new XYChart.Data(dates[i], someData[i])); 
     }  
     Scene scene = new Scene(lineChart,800,600); 
     lineChart.getData().add(series); 

     stage.setScene(scene); 
     stage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
+0

Also werde ich Jfreechart nicht verwenden, und alles in der plotBtnActionPerformed-Methode tun? – newbimyth

+0

Kann ich mehrere Serien erstellen und mehr Linien auf einem Diagramm zeichnen? – newbimyth

+0

(auf die Frage) Eigentlich ist es nur Java, aber ich denke, ich kann eine neue JavaFX-Klasse erstellen. – newbimyth

Verwandte Themen