JavaFX教程 – JavaFX区域图
区域图是另一种类型的双轴图表。
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;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Group root = new Group();
final NumberAxis xAxis = new NumberAxis(1, 12, 1);
final NumberAxis yAxis = new NumberAxis();
final StackedAreaChart<Number,Number> stackedAreaChart = new StackedAreaChart<Number,Number>(xAxis,yAxis);
final XYChart.Series<Number,Number> series1 = new XYChart.Series<Number,Number>();
xAxis.setLabel("Month");
yAxis.setLabel("Value");
stackedAreaChart.setTitle("StackedAreaChart");
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(10, 150));
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(10, 260));
stackedAreaChart.getData().addAll(series1, series2);
root.getChildren().addAll(stackedAreaChart);
primaryStage.setScene(new Scene(root, 500, 400));
primaryStage.show();
}
}
上面的代码生成以下结果。
创建区域图
要创建区域图,请使用AreaChart对象和使用XYChart.Series类创建一个或多个数据系列,并将数据分配给图表。
import javafx.application.Application;
import javafx.scene.Group;
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.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("");
Group root = new Group();
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Month");
yAxis.setLabel("Value");
final AreaChart<String,Number> areaChart = new AreaChart<String,Number>(xAxis,yAxis);
areaChart.setTitle("AreaChart");
XYChart.Series series = new XYChart.Series();
series.setName("XYChart.Series");
series.getData().add(new XYChart.Data("January", 100));
series.getData().add(new XYChart.Data("February", 200));
series.getData().add(new XYChart.Data("March", 50));
areaChart.getData().add(series);
root.getChildren().add(areaChart);
primaryStage.setScene(new Scene(root, 500, 400));
primaryStage.show();
}
}
上面的代码生成以下结果。

向AreaChart添加更多系列
/*
* Copyright (c) 2011, 2012 Oracle and/or its affiliates.
* All rights reserved. Use is subject to license terms.
*
* This file is available and licensed under the following license:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the distribution.
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
//package areachartsample;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;
public class Main extends Application {
@Override public void start(Stage stage) {
stage.setTitle("Area Chart Sample");
final NumberAxis xAxis = new NumberAxis(1, 30, 1);
final NumberAxis yAxis = new NumberAxis(-5, 27, 5);
final AreaChart<Number,Number> ac =
new AreaChart<Number,Number>(xAxis,yAxis);
xAxis.setForceZeroInRange(true);
ac.setTitle("Temperature Monitoring (in Degrees C)");
XYChart.Series series1 = new XYChart.Series();
series1.setName("March");
series1.getData().add(new XYChart.Data(0, -2));
series1.getData().add(new XYChart.Data(3, -4));
series1.getData().add(new XYChart.Data(6, 0));
series1.getData().add(new XYChart.Data(9, 5));
XYChart.Series series2 = new XYChart.Series();
series2.setName("April");
series2.getData().add(new XYChart.Data(0, 4));
series2.getData().add(new XYChart.Data(3, 10));
series2.getData().add(new XYChart.Data(6, 15));
series2.getData().add(new XYChart.Data(9, 8));
XYChart.Series series3 = new XYChart.Series();
series3.setName("May");
series3.getData().add(new XYChart.Data(0, 20));
series3.getData().add(new XYChart.Data(3, 15));
series3.getData().add(new XYChart.Data(6, 13));
series3.getData().add(new XYChart.Data(9, 12));
Scene scene = new Scene(ac,800,600);
//scene.getStylesheets().add("areachartsample/Chart.css");
ac.setHorizontalZeroLineVisible(true);
ac.getData().addAll(series1, series2, series3);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的代码生成以下结果。

创建堆叠区域图
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.stage.Stage;
public class Main extends Application {
final NumberAxis xAxis = new NumberAxis(1, 10, 1);
final NumberAxis yAxis = new NumberAxis();
final StackedAreaChart<Number, Number> sac =
new StackedAreaChart<>(xAxis, yAxis);
@Override
public void start(Stage stage) {
sac.setTitle("title");
XYChart.Series<Number, Number> seriesApril =
new XYChart.Series<>();
seriesApril.setName("April");
seriesApril.getData().add(new XYChart.Data(1, 4));
seriesApril.getData().add(new XYChart.Data(3, 10));
seriesApril.getData().add(new XYChart.Data(6, 15));
XYChart.Series<Number, Number> seriesMay =
new XYChart.Series<>();
seriesMay.setName("May");
seriesMay.getData().add(new XYChart.Data(1, 23));
seriesMay.getData().add(new XYChart.Data(7, 26));
seriesMay.getData().add(new XYChart.Data(10, 26));
Scene scene = new Scene(sac, 800, 600);
sac.getData().addAll(seriesApril, seriesMay);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的代码生成以下结果。

国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













