JavaFX散点图
JavaFX ScatterChart组件可以在JavaFX应用程序内绘制散点图。 JavaFX ScatterChart组件由类javafx.scene.chart.ScatterChart表示。
散点图X轴和Y轴
JavaFX ScatterChart绘制散点图。散点图是二维图,这意味着该图具有X轴和Y轴。我们可以使用分类轴和数字轴,但是在本示例中,我将仅使用两个数字轴作为散点图。数字轴由JavaFX类javafx.scene.chart.NumberAxis表示。
我们需要定义ScatterChart使用的X轴和Y轴。这是创建两个JavaFXNumberAxis实例的示例:
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");
创建一个散点图
我们可以通过创建ScatterChart类的实例来创建JavaFX ScatterChart组件。我们需要将X轴和Y轴传递给ScatterChart构造函数。这是一个JavaFXScatterChart实例化示例:
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");
ScatterChart scatterChart = new ScatterChart(xAxis, yAxis);
散点图数据系列
要使JavaFXScatterChart组件显示任何点,我们必须为其提供数据序列。数据系列是数据点的列表。每个数据点包含一个X值和一个Y值。这是创建数据系列并将其添加到ScatterChart组件的示例:
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));
scatterChart.getData().add(dataSeries1);
首先,创建一个XYChart.Series实例并命名。其次,将6个XYChart.Data实例添加到XYChart.Series对象。第三,将" XYChart.Series"对象添加到" ScatterChart"对象中。
可以将多个数据序列添加到ScatterChart中。只需对其他数据重复以上代码即可。
将ScatterChart添加到场景图
要使" ScatterChart"可见,必须将其添加到JavaFX场景图中。这意味着将" ScatterChart"添加到" Scene"对象,或者将" ScatterChart"添加到添加到" Scene"对象的布局组件。
这是一个向JavaFX场景图添加ScatterChart的示例:
package com.Hyman.javafx.charts;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ScatterChartExperiments extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("BarChart Experiments");
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");
ScatterChart scatterChart = new ScatterChart(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));
scatterChart.getData().add(dataSeries1);
VBox vbox = new VBox(scatterChart);
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);
}
}

