带有类别轴的 JavaFX 折线图示例
javafxobject oriented programmingprogramming更新于 2025/6/26 0:37:17
折线图的数据值表示由线段连接的一系列点。在 JavaFX 中,您可以通过实例化 javafx.scene.chart.LineChart 类来创建折线图。
实例化此类时,必须传递代表 x 轴和 y 轴的 Axis 类的两个对象(作为构造函数的参数)。由于 Axis 类是抽象类,因此您需要传递其具体子类的对象,例如 NumberAxis(用于数值)或 CategoryAxis(用于字符串值)。
示例
以下是演示类别轴用法的示例。在这里,我们绘制了各种 OnePlus 手机型号的销量,并使用类别 (x) 轴来绘制手机型号。
import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.layout.StackPane; public class LineChart_Category extends Application { public void start(Stage stage) { //定义 x 和 y 轴 CategoryAxis xAxis = new CategoryAxis(); NumberAxis yAxis = new NumberAxis(200, 600, 100); //设置轴的标签 xAxis.setLabel("Model"); yAxis.setLabel("Price (USD)"); //创建折线图 LineChart linechart = new LineChart(xAxis, yAxis); //准备线的数据点 XYChart.Series series = new XYChart.Series(); series.getData().add(new XYChart.Data("OnePlus X", 249)); series.getData().add(new XYChart.Data("OnePlus One", 299)); series.getData().add(new XYChart.Data("OnePlus 2", 329)); series.getData().add(new XYChart.Data("OnePlus 3", 399)); series.getData().add(new XYChart.Data("OnePlus 3T", 439)); series.getData().add(new XYChart.Data("OnePlus 5", 479)); series.getData().add(new XYChart.Data("OnePlus 5T", 499)); series.getData().add(new XYChart.Data("OnePlus 6", 559)); //设置折线图(series)的名称 series.setName("Price of mobiles"); //设置折线图的数据 linechart.getData().add(series); //创建一个 Stack Pane 来保存图表 StackPane pane = new StackPane(linechart); pane.setPadding(new Insets(15, 15, 15, 15)); pane.setStyle("-fx-background-color: BEIGE"); //设置场景 Scene scene = new Scene(pane, 595, 300); stage.setTitle("Line Chart"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }