JavaFX AreaChart

时间:2020-01-09 10:36:34  来源:igfitidea点击:

JavaFX AreaChart可以在JavaFX应用程序内部绘制面积图。面积图是一种折线图,其中线条下方的区域用颜色绘制。 JavaFX AreaChart组件由类javafx.scene.chart.AreaChart表示。

AreaChart X轴和Y轴

JavaFX AreaChart绘制面积图。面积图是二维图形,表示该图形具有X轴和Y轴。面积图通常有两个数字轴。数字轴由JavaFX类javafx.scene.chart.NumberAxis表示。

我们需要定义" AreaChart"使用的X轴和Y轴。这是创建两个JavaFXNumberAxis实例的示例:

NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");

NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");

创建一个AreaChart

我们可以通过创建AreaChart类的实例来创建JavaFX AreaChart组件。我们需要将X轴和Y轴传递给AreaChart构造函数。这是一个JavaFXAreaChart实例化示例:

NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");

NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");

AreaChart areaChart = new AreaChart(xAxis, yAxis);

AreaChart数据系列

为了使JavaFXAreaChart组件能够显示任何内容,我们必须为其提供数据序列。数据系列是数据点的列表。每个数据点包含一个X值和一个Y值。这是创建数据系列并将其添加到AreaChart组件的示例:

XYChart.Series dataSeries1 = new XYChart.Series();
dataSeries1.setName("2014");

dataSeries1.getData().add(new XYChart.Data( 1, 567));
dataSeries1.getData().add(new XYChart.Data( 5, 612));
dataSeries1.getData().add(new XYChart.Data(10, 800));
dataSeries1.getData().add(new XYChart.Data(20, 780));
dataSeries1.getData().add(new XYChart.Data(40, 810));
dataSeries1.getData().add(new XYChart.Data(80, 850));

areaChart.getData().add(dataSeries1);

首先,创建一个XYChart.Series实例并命名。其次,将6个XYChart.Data实例添加到XYChart.Series对象。第三,将" XYChart.Series"对象添加到" AreaChart"对象中。

可以将多个数据序列添加到AreaChart中。只需对其他数据重复以上代码即可。

将AreaChart添加到场景图

要使JavaFXAreaChart可见,必须将其添加到JavaFX场景图中。这意味着将AreaChart添加到Scene对象,或者将AreaChart添加到布局部件,该布局部件添加到Scene对象。

这是一个向JavaFX场景图添加AreaChart的示例:

package com.Hyman.javafx.charts;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class AreaChartExperiments extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("AreaChart Experiments");

        NumberAxis xAxis = new NumberAxis();
        xAxis.setLabel("No of employees");

        NumberAxis yAxis = new NumberAxis();
        yAxis.setLabel("Revenue per employee");

        AreaChart areaChart = new AreaChart(xAxis, yAxis);

        XYChart.Series dataSeries1 = new XYChart.Series();
        dataSeries1.setName("2014");

        dataSeries1.getData().add(new XYChart.Data( 1, 567));
        dataSeries1.getData().add(new XYChart.Data( 5, 612));
        dataSeries1.getData().add(new XYChart.Data(10, 800));
        dataSeries1.getData().add(new XYChart.Data(20, 780));
        dataSeries1.getData().add(new XYChart.Data(40, 810));
        dataSeries1.getData().add(new XYChart.Data(80, 850));

        areaChart.getData().add(dataSeries1);

        VBox vbox = new VBox(areaChart);

        Scene scene = new Scene(vbox, 400, 200);

        primaryStage.setScene(scene);
        primaryStage.setHeight(300);
        primaryStage.setWidth(1200);

        primaryStage.show();
    }

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