StackedAreaChart
y=x 时图表
y=x*x 时图表
前两个图表叠加
javafx的chart的基本设置大体相通,可参考ScatterChart进行设置。
代码
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.StackedAreaChart;
import javafx.scene.chart.XYChart.Series;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class StackedAreaChartUtility extends Application {
private NumberAxis xAxis;
private NumberAxis yAxis;
public Series createSeriesA() {
Series series = new StackedAreaChart.Series();
series.setName("A");
for(int i=1;i<10;i++) {
series.getData().add(new StackedAreaChart.Data(i,i));
}
return series;
}
public Series createSeriesB() {
Series series = new StackedAreaChart.Series();
series.setName("B");
for(int i=1;i<10;i++) {
series.getData().add(new StackedAreaChart.Data(i,i*i));
}
return series;
}
public StackedAreaChart createChart(String title) {
StackedAreaChart chart;
xAxis = new NumberAxis();
xAxis.setLabel("X-Axis");
yAxis = new NumberAxis();
yAxis.setLabel("Y-Axis");
chart = new StackedAreaChart(xAxis, yAxis);
chart.setTitle("StackedAreaChart "+title);
return chart;
}
@Override public void start(Stage primaryStage) throws Exception {
StackedAreaChart chartA = createChart("A");
chartA.getData().add(createSeriesA());
StackedAreaChart chartB = createChart("B");
chartB.getData().add(createSeriesB());
StackedAreaChart chartAB = createChart("AB");
chartAB.getData().add(createSeriesA());
chartAB.getData().add(createSeriesB());
primaryStage.setScene(new Scene(chartA));
Stage b=new Stage();
b.setScene(new Scene(chartB));
b.show();
Stage ab=new Stage();
ab.setScene(new Scene(chartAB));
ab.show();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}