In the example, some column in series 2 are missed. From the graph, it can be noticed how JavaFX display the StackedAreaChart with missed column.
package javafx21;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.StackedAreaChart;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;
/**
*
* @web http://java-buddy.blogspot.com/
*/
public class Charts extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("java-buddy.blogspot.com");
Group root = new Group();
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
final StackedAreaChart<Number,Number> stackedAreaChart = new StackedAreaChart<>(xAxis,yAxis);
final XYChart.Series<Number,Number> series1 = new XYChart.Series<>();
xAxis.setLabel("Month");
yAxis.setLabel("Value");
stackedAreaChart.setTitle("StackedAreaChart");
//Series 1
series1.setName("XYChart.Series 1");
series1.getData().add(new XYChart.Data(1, 100));
series1.getData().add(new XYChart.Data(2, 200));
series1.getData().add(new XYChart.Data(3, 50));
series1.getData().add(new XYChart.Data(4, 75));
series1.getData().add(new XYChart.Data(5, 110));
series1.getData().add(new XYChart.Data(6, 300));
series1.getData().add(new XYChart.Data(7, 111));
series1.getData().add(new XYChart.Data(8, 30));
series1.getData().add(new XYChart.Data(9, 75));
series1.getData().add(new XYChart.Data(10, 55));
series1.getData().add(new XYChart.Data(11, 225));
series1.getData().add(new XYChart.Data(12, 99));
//Series 2
XYChart.Series<Number,Number> series2 = new XYChart.Series();
series2.setName("XYChart.Series 2");
series2.getData().add(new XYChart.Data(1, 50));
series2.getData().add(new XYChart.Data(2, 200));
series2.getData().add(new XYChart.Data(3, 260));
series2.getData().add(new XYChart.Data(4, 100));
//series2.getData().add(new XYChart.Data(5, 100));
series2.getData().add(new XYChart.Data(6, 100));
series2.getData().add(new XYChart.Data(7, 0));
//series2.getData().add(new XYChart.Data(8, 0));
series2.getData().add(new XYChart.Data(9, 0));
series2.getData().add(new XYChart.Data(10, 100));
//series2.getData().add(new XYChart.Data(11, 150));
series2.getData().add(new XYChart.Data(12, 200));
//
stackedAreaChart.getData().addAll(series1, series2);
root.getChildren().addAll(stackedAreaChart);
primaryStage.setScene(new Scene(root, 500, 400));
primaryStage.show();
}
}
Related:
- Define the range and space of NumberAxis in JavaFX charts
- JavaFX 2.1: javafx.scene.chart.StackedBarChart