📜  javafx 图表(1)

📅  最后修改于: 2023-12-03 14:42:22.693000             🧑  作者: Mango

JavaFX图表

简介

JavaFX是一个用于创建富客户端应用程序的软件平台,它提供了用于构建用户界面、交互式图形、媒体和JavaFX图表的API。JavaFX图表是一种用于呈现数据的交互式图形,常用于分析和可视化数据。JavaFX图表库提供了一系列可视化控件,如线图、饼图、柱状图等,开发者可以使用JavaFX图表库轻松构建各种类型的数据可视化应用程序。

安装

JavaFX图表API包属于JavaFX API的一部分,如果你使用的是Java 8(或更高版本)JDK,则不需要安装JavaFX图表API包。如果你使用的是Java 7及以下版本JDK,则需要手动下载并安装JavaFX图表API包。

创建JavaFX图表

可以使用JavaFX的Scene Builder创建JavaFX图表,也可以手动使用JavaFX图表API创建。以下是一个简单的示例代码,用于创建一个带有标题和数据点的线图:

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.stage.Stage;

public class LineChartSample extends Application {

    @Override
    public void start(Stage stage) {
        //定义x轴上的坐标
        final NumberAxis xAxis = new NumberAxis();
        //定义y轴上的坐标
        final NumberAxis yAxis = new NumberAxis();
        //定义线图
        final LineChart<Number, Number> lineChart =
                new LineChart<>(xAxis, yAxis);

        lineChart.setTitle("数据折线图");//设置标题

        //定义图表线的名称
        XYChart.Series<Number, Number> series = new XYChart.Series<>();
        series.setName("数据1");

        //添加数据
        series.getData().add(new XYChart.Data<>(1, 23));
        series.getData().add(new XYChart.Data<>(2, 14));
        series.getData().add(new XYChart.Data<>(3, 15));
        series.getData().add(new XYChart.Data<>(4, 24));
        series.getData().add(new XYChart.Data<>(5, 34));
        series.getData().add(new XYChart.Data<>(6, 36));
        series.getData().add(new XYChart.Data<>(7, 22));

        //将线图添加到场景中
        Scene scene = new Scene(lineChart, 800, 600);
        lineChart.getData().add(series);

        //在舞台中显示场景
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
JavaFX图表类型

JavaFX提供多种类型的图表控件,以下是一些常用的JavaFX图表类型:

线图

线图是一种用于呈现数据随时间(或其他连续性维度)变化的图表类型。线图用X和Y坐标轴显示数据,通常用于显示趋势或周期性主题数据。以下代码演示如何创建一个线图:

//定义x轴上的坐标
final NumberAxis xAxis = new NumberAxis();
//定义y轴上的坐标
final NumberAxis yAxis = new NumberAxis();
//定义线图
final LineChart<Number, Number> lineChart =
        new LineChart<>(xAxis, yAxis);

lineChart.setTitle("数据折线图");//设置标题

//定义图表线的名称
XYChart.Series<Number, Number> series = new XYChart.Series<>();
series.setName("数据1");

//添加数据
series.getData().add(new XYChart.Data<>(1, 23));
series.getData().add(new XYChart.Data<>(2, 14));
series.getData().add(new XYChart.Data<>(3, 15));
series.getData().add(new XYChart.Data<>(4, 24));
series.getData().add(new XYChart.Data<>(5, 34));
series.getData().add(new XYChart.Data<>(6, 36));
series.getData().add(new XYChart.Data<>(7, 22));

//将线图添加到场景中
Scene scene = new Scene(lineChart, 800, 600);
lineChart.getData().add(series);
饼图

饼图是一种圆形图表,用于显示不同类别数据的比例。饼图由多个扇形组成,每个扇形大小表示该类别数据的占比。以下代码演示如何创建一个饼图:

//定义数据
ObservableList<PieChart.Data> pieChartData =
                FXCollections.observableArrayList(
                        new PieChart.Data("数据1", 13),
                        new PieChart.Data("数据2", 25),
                        new PieChart.Data("数据3", 10),
                        new PieChart.Data("数据4", 22),
                        new PieChart.Data("数据5", 30)
                );
//创建饼图
final PieChart pieChart = new PieChart(pieChartData);
pieChart.setTitle("数据比例饼图");//设置标题

//将饼图添加到场景中
Scene scene = new Scene(pieChart, 800, 600);
散点图

散点图是一种用于显示数据之间关系的图表类型。它以两个变量的值(x和y)作为数据轴,每个点代表一个数据点。以下代码演示如何创建一个散点图:

//定义x轴和y轴的坐标
final NumberAxis xAxis = new NumberAxis(0, 10, 1);
final NumberAxis yAxis = new NumberAxis(-100, 500, 100);

//定义散点图
final ScatterChart<Number, Number> scatterChart =
        new ScatterChart<>(xAxis, yAxis);

scatterChart.setTitle("数据分布散点图");//设置标题

//定义散点图系列的名称
XYChart.Series<Number, Number> series = new XYChart.Series<>();
series.setName("数据");

//添加数据
series.getData().add(new XYChart.Data<>(1, 23));
series.getData().add(new XYChart.Data<>(2, 14));
series.getData().add(new XYChart.Data<>(3, 15));
series.getData().add(new XYChart.Data<>(4, 24));
series.getData().add(new XYChart.Data<>(5, 34));
series.getData().add(new XYChart.Data<>(6, 36));
series.getData().add(new XYChart.Data<>(7, 22));

//将散点图添加到场景中
Scene scene = new Scene(scatterChart, 800, 600);
scatterChart.getData().add(series);
总结

JavaFX图表提供了丰富的图表控件和API,使得开发者可以轻松地创建各种类型的数据可视化应用程序。对于需要展示大量数据的应用场景,JavaFX图表可以提供非常好的辅助,帮助用户更好地了解和分析数据。