Um componente JavaFX StackedAreaChart é capaz de desenhar gráficos de áreas empilhadas dentro de seus aplicativos JavaFX. Um gráfico de áreas empilhadas é semelhante a um gráfico de áreas com múltiplas séries de dados, exceto que um gráfico de áreas empilhadas exibe as séries de dados (e, portanto, as áreas) empilhadas umas sobre as outras, onde o gráfico de áreas normal as sobreporia.
O componente JavaFX StackedAreaChart é representado pela classe java.scene.chart.StackedAreaChart
.
StackedAreaChart Eixo X e Eixo Y
Um JavaFX StackedAreaChart desenha um gráfico de área empilhada. Um gráfico de área empilhada é um gráfico bidimensional, o que significa que o gráfico tem um eixo X e um eixo Y. Os gráficos de área normalmente possuem dois eixos numéricos. Um eixo numérico é representado pela classe JavaFX javafx.scene.chart.NumberAxis
.
Você precisa definir o eixo X e o eixo Y usados por um arquivo StackedAreaChart
. Aqui está um exemplo de criação de duas NumberAxis
instâncias JavaFX:
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("Last 7 Days");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Visits");
Criando um StackedAreaChart
Você cria um componente JavaFX StackedAreaChart criando uma instância da StackedAreaChart
classe. Você precisa passar um eixo X e um eixo Y para o StackedAreaChart
construtor. Aqui está um StackedAreaChart
exemplo de instanciação JavaFX:
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("No of employees");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Revenue per employee");
StackedAreaChart stackedAreaChart = new StackedAreaChart(xAxis, yAxis);
Série de dados StackedAreaChart
Para fazer com que um componente JavaFX StackedAreaChart
exiba quaisquer pontos, você deve fornecer a ele uma série de dados . Uma série de dados é uma lista de pontos de dados. Cada ponto de dados contém um valor X e um valor Y.
Para ver quaisquer áreas empilhadas, você deve adicionar duas ou mais séries de dados ao StackedAreaChart
componente. O StackedAreaChart
exibe os valores da série de dados empilhados uns sobre os outros.
Aqui está um exemplo de criação de duas séries de dados e adição delas a um StackedAreaChart
componente:
XYChart.Series dataSeries1 = new XYChart.Series();
dataSeries1.setName("Desktop");
dataSeries1.getData().add(new XYChart.Data( 0, 567));
dataSeries1.getData().add(new XYChart.Data( 1, 612));
dataSeries1.getData().add(new XYChart.Data( 2, 800));
dataSeries1.getData().add(new XYChart.Data( 3, 780));
dataSeries1.getData().add(new XYChart.Data( 4, 650));
dataSeries1.getData().add(new XYChart.Data( 5, 610));
dataSeries1.getData().add(new XYChart.Data( 6, 590));
stackedAreaChart.getData().add(dataSeries1);
XYChart.Series dataSeries2 = new XYChart.Series();
dataSeries2.setName("Mobile");
dataSeries2.getData().add(new XYChart.Data( 0, 101));
dataSeries2.getData().add(new XYChart.Data( 1, 110));
dataSeries2.getData().add(new XYChart.Data( 2, 140));
dataSeries2.getData().add(new XYChart.Data( 3, 132));
dataSeries2.getData().add(new XYChart.Data( 4, 115));
dataSeries2.getData().add(new XYChart.Data( 5, 109));
dataSeries2.getData().add(new XYChart.Data( 6, 105));
stackedAreaChart.getData().add(dataSeries2);
Os dados nesta série de dados representam os dados de visitas de usuários em computadores e dispositivos móveis há 7 dias.
Adicionando um StackedAreaChart ao gráfico de cena
Para tornar um JavaFX StackedAreaChart
visível, você deve adicioná-lo ao gráfico de cena JavaFX. Isso significa adicionar o StackedAreaChart
a um Scene
objeto ou adicionar o AreaChart
a um componente de layout que é adicionado a um Scene
objeto.
Aqui está um exemplo que adiciona um StackedAreaChart
ao gráfico de cena JavaFX:
package com.jenkov.javafx.charts;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.StackedAreaChart;
import javafx.scene.chart.XYChart;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class StackedAreaChartExperiments extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("StackedAreaChart Experiments");
NumberAxis xAxis = new NumberAxis();
xAxis.setLabel("7 Day Interval");
NumberAxis yAxis = new NumberAxis();
yAxis.setLabel("Visits");
StackedAreaChart stackedAreaChart = new StackedAreaChart(xAxis, yAxis);
XYChart.Series dataSeries1 = new XYChart.Series();
dataSeries1.setName("Desktop");
dataSeries1.getData().add(new XYChart.Data( 0, 567));
dataSeries1.getData().add(new XYChart.Data( 1, 612));
dataSeries1.getData().add(new XYChart.Data( 2, 800));
dataSeries1.getData().add(new XYChart.Data( 3, 780));
dataSeries1.getData().add(new XYChart.Data( 4, 650));
dataSeries1.getData().add(new XYChart.Data( 5, 610));
dataSeries1.getData().add(new XYChart.Data( 6, 590));
stackedAreaChart.getData().add(dataSeries1);
XYChart.Series dataSeries2 = new XYChart.Series();
dataSeries2.setName("Mobile");
dataSeries2.getData().add(new XYChart.Data( 0, 101));
dataSeries2.getData().add(new XYChart.Data( 1, 110));
dataSeries2.getData().add(new XYChart.Data( 2, 140));
dataSeries2.getData().add(new XYChart.Data( 3, 132));
dataSeries2.getData().add(new XYChart.Data( 4, 115));
dataSeries2.getData().add(new XYChart.Data( 5, 109));
dataSeries2.getData().add(new XYChart.Data( 6, 105));
stackedAreaChart.getData().add(dataSeries2);
VBox vbox = new VBox(stackedAreaChart);
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);
}
}
A aplicação resultante da execução deste exemplo seria semelhante a esta: