折线图

LineChart 类将数据表示为一系列与直线相连的数据点。每个数据点都包含在 XYChart.Data 对象中,数据点分组在 XYChart.Series 中。

每个 XYChart.Data 对象都有两个字段,可以使用 getXValuegetYValue 访问,这些字段对应于图表上的 x 和 ay 值。

XYChart.Data data = new XYChart.Data(1,3);
System.out.println(data.getXValue()); // Will print 1
System.out.println(data.getYValue()); // Will print 3

在我们创建 LineChart 之前,我们需要定义它的轴。例如,NumberAxis 类的默认无参数构造函数将创建一个可以使用的自动量程轴,无需进一步配置。

Axis xAxis = new NumberAxis();

在下面的完整示例中,我们创建了两个系列的数据,这些数据将显示在同一个图表中。轴的标签,范围和刻度值是明确定义的。

@Override
public void start(Stage primaryStage) {
    Pane root = new Pane();

    // Create empty series
    ObservableList<XYChart.Series> seriesList = FXCollections.observableArrayList();

    // Create data set for the first employee and add it to the series
    ObservableList<XYChart.Data> aList = FXCollections.observableArrayList(
            new XYChart.Data(0, 0),
            new XYChart.Data(2, 6),
            new XYChart.Data(4, 37),
            new XYChart.Data(6, 82),
            new XYChart.Data(8, 115)
    );
    seriesList.add(new XYChart.Series("Employee A", aList));

    // Create data set for the second employee and add it to the series
    ObservableList<XYChart.Data> bList = FXCollections.observableArrayList(
            new XYChart.Data(0, 0),
            new XYChart.Data(2, 43),
            new XYChart.Data(4, 51),
            new XYChart.Data(6, 64),
            new XYChart.Data(8, 92)
    );
    seriesList.add(new XYChart.Series("Employee B", bList));

    // Create axes
    Axis xAxis = new NumberAxis("Hours worked", 0, 8, 1);
    Axis yAxis = new NumberAxis("Lines written", 0, 150, 10);
    
    LineChart chart = new LineChart(xAxis, yAxis, seriesList);

    root.getChildren().add(chart);

    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();
}

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

输出:

StackOverflow 文档