JavaFX AreaChart Example

In this JavaFX source code example, we will see how to create an Area Chart using JavaFX.

An area chart displays graphically quantitative data that change over time.

JavaFX AreaChart Example

The example shows an area chart showing world crude oil consumption by year.
package sample;

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

public class Main extends Application {

    @Override
    public void start(Stage stage) {

        initUI(stage);
    }

    private void initUI(Stage stage) {

        HBox root = new HBox();
        Scene scene = new Scene(root, 490, 350);

        CategoryAxis xAxis = new CategoryAxis();
        xAxis.setLabel("Time");

        NumberAxis yAxis = new NumberAxis();
        yAxis.setLabel("Thousand bbl/d");

        AreaChart areaChart = new AreaChart<>(xAxis, yAxis);
        areaChart.setTitle("Oil consumption");

        XYChart.Series data = new XYChart.Series<String, Number>();

        data.getData().add(new XYChart.Data<>("2014", 82502));
        data.getData().add(new XYChart.Data<>("2015", 84026));
        data.getData().add(new XYChart.Data<>("2016", 85007));
        data.getData().add(new XYChart.Data<>("2017", 86216));
        data.getData().add(new XYChart.Data<>("2018", 85559));
        data.getData().add(new XYChart.Data<>("2019", 84491));
        data.getData().add(new XYChart.Data<>("2020", 87672));
        data.getData().add(new XYChart.Data<>("2021", 88575));
        data.getData().add(new XYChart.Data<>("2022", 89837));

        areaChart.getData().add(data);
        areaChart.setLegendVisible(false);

        root.getChildren().add(areaChart);

        stage.setTitle("AreaChart");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Output:


Comments