【发布时间】:2015-08-28 22:48:27
【问题描述】:
我有一个 LineChart 实例,用于在折线图中显示信息,但它无法正确排序 x 轴。
public class Main extends Application {
@Override public void start(Stage stage) {
stage.setTitle("Line Chart Sample");
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Month");
final LineChart<String,Number> lineChart =
new LineChart<String,Number>(xAxis,yAxis);
lineChart.setTitle("Stock Monitoring, 2010");
XYChart.Series series1 = new XYChart.Series();
series1.setName("Portfolio 1");
series1.getData().add(new XYChart.Data("4", 12.15));
series1.getData().add(new XYChart.Data("7", 11.25));
series1.getData().add(new XYChart.Data("10", 3.00));
series1.getData().add(new XYChart.Data("14", 1.60));
series1.getData().add(new XYChart.Data("19", 1.05));
series1.getData().add(new XYChart.Data("25", 26.30));
series1.getData().add(new XYChart.Data("26", 7.50));
series1.getData().add(new XYChart.Data("27", 4.05));
series1.getData().add(new XYChart.Data("28", 4.00));
XYChart.Series series2 = new XYChart.Series();
series2.setName("Portfolio 2");
series2.getData().add(new XYChart.Data("7", 21.75));
series2.getData().add(new XYChart.Data("28", 13.20));
XYChart.Series series3 = new XYChart.Series();
series3.setName("Portfolio 3");
series3.getData().add(new XYChart.Data("2", 5.60));
series3.getData().add(new XYChart.Data("3", 7.70));
series3.getData().add(new XYChart.Data("10", 25.85));
series3.getData().add(new XYChart.Data("19", 6.00));
series3.getData().add(new XYChart.Data("28", 4.85));
series3.getData().add(new XYChart.Data("29", 0.80));
XYChart.Series series4 = new XYChart.Series();
series4.setName("Portfolio 4");
series4.getData().add(new XYChart.Data("9", 6.35));
series4.getData().add(new XYChart.Data("11", 3.20));
series4.getData().add(new XYChart.Data("19", 6.45));
series4.getData().add(new XYChart.Data("28", 6.00));
series4.getData().add(new XYChart.Data("29", 4.00));
Scene scene = new Scene(lineChart,800,600);
lineChart.getData().addAll(series1, series2, series3, series4);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
基本上,如果 y 轴上只有一个值对应一个 x 值,它将显示在不正确的位置。调试器显示数据已按预期顺序添加。
顺便说一句,如果删除所有其他图表,每个图表都可以正确显示。
【问题讨论】:
标签: java charts javafx linechart