欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 第三百八十节 JavaFX教程 - JavaFX区域图

第三百八十节 JavaFX教程 - JavaFX区域图

2025/3/18 0:07:29 来源:https://blog.csdn.net/2301_78772942/article/details/146273718  浏览:    关键词:第三百八十节 JavaFX教程 - JavaFX区域图

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);}@Overridepublic 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();}
}

上面的代码生成以下结果。

null

创建区域图

要创建区域图,请使用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);}@Overridepublic 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();}}

上面的代码生成以下结果。

null

向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);}
}

上面的代码生成以下结果。

null

创建堆叠区域图

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);@Overridepublic 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);}
}

上面的代码生成以下结果。


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词