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