济源网站建设,佛山网站建设报价,mvc5网站开发之美电子版,分享经济网站怎么建设翻译自 JavaFX - 堆积面积图
StackedArea Chart是区域图的变体#xff0c;显示每个值的贡献趋势#xff08;例如 - 加班#xff09;。堆叠区域使每个系列相邻#xff0c;但不与前面的系列重叠。这与区域图表形成对比#xff0c;其中每个系列覆盖前面的系列。
以下是描绘…翻译自 JavaFX - 堆积面积图
StackedArea Chart是区域图的变体显示每个值的贡献趋势例如 - 加班。堆叠区域使每个系列相邻但不与前面的系列重叠。这与区域图表形成对比其中每个系列覆盖前面的系列。
以下是描绘人口增长的堆积图表。 在JavaFX中堆积区域图表由名为StackedAreaChart的类表示。该类属于包javafx.scene.chart。通过实例化此类您可以在JavaFX中创建StackedAreaChart节点。
生成堆积面积图的步骤
要在JavaFX中生成堆积区域图表请按照以下步骤操作。
第1步创建一个类
创建一个Java类并继承包javafx.application的Application类。然后您可以按如下方式实现此类的start方法。
public class ClassName extends Application { Override public void start(Stage primaryStage) throws Exception { }
}
第2步定义轴
定义堆积面积图的X和Y轴并为其设置标签。在我们的例子中X轴表示从1750年到2050年的不同年份。这些年有50年的主要蜱单位。而Y轴代表数百万人口的增长。
//Defining the X axis
CategoryAxis xAxis new CategoryAxis(); xAxis.setCategories(FXCollections.StringobservableArrayList(Arrays.asList(1 750, 1800, 1850, 1900, 1950, 1999, 2050 ))); //Defining the Y axis
NumberAxis yAxis new NumberAxis(0, 10000, 2500);
yAxis.setLabel(Population in Billions);
第3步创建堆积面积图
通过实例化包javafx.scene.chart的名为StackedAreaChart的类来创建折线图。对于此类的构造函数传递表示在上一步中创建的X轴和Y轴的对象。
//Creating the Area chart
StackedAreaChartString, Number areaChart new StackedAreaChart(xAxis, yAxis);
areaChart.setTitle(Historic and Estimated Worldwide Population Growth by Region);
第4步准备数据
实例化XYChart.Series类并将数据一系列x和y坐标添加到此类的Observable列表中如下所示 -
//Prepare XYChart.Series objects by setting data
XYChart.Series series1 new XYChart.Series();
series1.setName(Asia);
series1.getData().add(new XYChart.Data(1750, 502));
series1.getData().add(new XYChart.Data(1800, 635));
series1.getData().add(new XYChart.Data(1850, 809));
series1.getData().add(new XYChart.Data(1900, 947));
series1.getData().add(new XYChart.Data(1950, 1402));
series1.getData().add(new XYChart.Data(1999, 3634));
series1.getData().add(new XYChart.Data(2050, 5268)); XYChart.Series series2 new XYChart.Series();
series2.setName(Africa);
series2.getData().add(new XYChart.Data(1750, 106));
series2.getData().add(new XYChart.Data(1800, 107));
series2.getData().add(new XYChart.Data(1850, 111));
series2.getData().add(new XYChart.Data(1900, 133));
series2.getData().add(new XYChart.Data(1950, 221));
series2.getData().add(new XYChart.Data(1999, 767));
series2.getData().add(new XYChart.Data(2050, 1766)); XYChart.Series series3 new XYChart.Series();
series3.setName(Europe);
series3.getData().add(new XYChart.Data(1750, 163));
series3.getData().add(new XYChart.Data(1800, 203));
series3.getData().add(new XYChart.Data(1850, 276));
series3.getData().add(new XYChart.Data(1900, 408));
series3.getData().add(new XYChart.Data(1950, 547));
series3.getData().add(new XYChart.Data(1999, 729));
series3.getData().add(new XYChart.Data(2050, 628)); XYChart.Series series4 new XYChart.Series();
series4.setName(America);
series4.getData().add(new XYChart.Data(1750, 18));
series4.getData().add(new XYChart.Data(1800, 31)); series4.getData().add(new XYChart.Data(1850, 54));
series4.getData().add(new XYChart.Data(1900, 156));
series4.getData().add(new XYChart.Data(1950, 339));
series4.getData().add(new XYChart.Data(1999, 818));
series4.getData().add(new XYChart.Data(2050, 1201)); XYChart.Series series5 new XYChart.Series();
series5.setName(Oceania);
series5.getData().add(new XYChart.Data(1750, 2));
series5.getData().add(new XYChart.Data(1800, 2));
series5.getData().add(new XYChart.Data(1850, 2));
series5.getData().add(new XYChart.Data(1900, 6));
series5.getData().add(new XYChart.Data(1950, 13));
series5.getData().add(new XYChart.Data(1999, 30));
series5.getData().add(new XYChart.Data(2050, 46));
第5步将数据添加到堆积区域图表
将上一步骤中准备的数据系列添加到堆积区域图表中如下所示 -
//Setting the data to area chart
areaChart.getData().addAll(series1, series2, series3, series4, series5);
第6步创建组对象
在start方法中通过实例化名为Group的类来创建组对象该类属于包javafx.scene。
将上一步中创建的StackedAreaChartnode对象作为参数传递给Group类的构造函数。这应该是为了将它添加到组中如下所示 -
Group root new Group(stackedAreaChart);
第7步创建场景对象
通过实例化名为Scene的类来创建一个Scene该类属于包javafx.scene。在此类中传递上一步中创建的Group对象root。
除了根对象之外还可以传递两个表示屏幕高度和宽度的双参数以及Group类的对象如下所示。
Scene scene new Scene(group ,600, 300);
第8步设置舞台的标题
您可以使用Stage类的setTitle方法将标题设置为舞台。所述primaryStage是Stage对象它被传递给场景类作为参数的启动方法。
使用primaryStage对象将场景标题设置为Sample Application如下所示。
primaryStage.setTitle(Sample Application);
第9步将场景添加到舞台
您可以使用名为Stage的类的方法setScene将Scene对象添加到舞台。使用此方法添加前面步骤中准备的Scene对象如下所示。
primaryStage.setScene(scene);
第10步显示舞台的内容
显示场景的使用命名的方法的内容显示的的阶段类如下所示。
primaryStage.show();
第11步启动应用程序
通过从main方法调用Application类的静态方法launch来启动JavaFX应用程序如下所示。
public static void main(String args[]){ launch(args);
}
例
下表列出了从1750年到2050年不同大陆的人口。 亚洲非洲欧洲美国大洋洲175050210616318218006351072033121850809111276542190094713340815661950年1402221547339131999年3634767729818三十205052681766628120146
以下是一个Java程序它使用JavaFX生成描述上述数据的堆积区域图。
将此代码保存在名为StackedAreaChartExample.java的文件中。
import java.util.Arrays;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.collections.FXCollections;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.chart.CategoryAxis;
import javafx.stage.Stage;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.StackedAreaChart;
import javafx.scene.chart.XYChart; public class StackedAreaChartExample extends Application { Override public void start(Stage stage) { //Defining the axes CategoryAxis xAxis new CategoryAxis(); xAxis.setCategories(FXCollections.StringobservableArrayList( Arrays.asList(1750, 1800, 1850, 1900, 1950, 1999, 2050 ))); NumberAxis yAxis new NumberAxis(0, 10000, 2500); yAxis.setLabel(Population in Millions); //Creating the Area chart StackedAreaChartString, Number areaChart new StackedAreaChart(xAxis, yAxis);areaChart.setTitle(Historic and Estimated Worldwide Population Growth by Region);//Prepare XYChart.Series objects by setting data XYChart.Series series1 new XYChart.Series(); series1.setName(Asia); series1.getData().add(new XYChart.Data(1750, 502)); series1.getData().add(new XYChart.Data(1800, 635)); series1.getData().add(new XYChart.Data(1850, 809)); series1.getData().add(new XYChart.Data(1900, 947)); series1.getData().add(new XYChart.Data(1950, 1402)); series1.getData().add(new XYChart.Data(1999, 3634)); series1.getData().add(new XYChart.Data(2050, 5268)); XYChart.Series series2 new XYChart.Series(); series2.setName(Africa); series2.getData().add(new XYChart.Data(1750, 106)); series2.getData().add(new XYChart.Data(1800, 107)); series2.getData().add(new XYChart.Data(1850, 111)); series2.getData().add(new XYChart.Data(1900, 133)); series2.getData().add(new XYChart.Data(1950, 221)); series2.getData().add(new XYChart.Data(1999, 767)); series2.getData().add(new XYChart.Data(2050, 1766)); XYChart.Series series3 new XYChart.Series(); series3.setName(Europe); series3.getData().add(new XYChart.Data(1750, 163)); series3.getData().add(new XYChart.Data(1800, 203)); series3.getData().add(new XYChart.Data(1850, 276)); series3.getData().add(new XYChart.Data(1900, 408)); series3.getData().add(new XYChart.Data(1950, 547)); series3.getData().add(new XYChart.Data(1999, 729)); series3.getData().add(new XYChart.Data(2050, 628)); XYChart.Series series4 new XYChart.Series(); series4.setName(America); series4.getData().add(new XYChart.Data(1750, 18)); series4.getData().add(new XYChart.Data(1800, 31)); series4.getData().add(new XYChart.Data(1850, 54)); series4.getData().add(new XYChart.Data(1900, 156)); series4.getData().add(new XYChart.Data(1950, 339)); series4.getData().add(new XYChart.Data(1999, 818)); series4.getData().add(new XYChart.Data(2050, 1201)); XYChart.Series series5 new XYChart.Series(); series5.setName(Oceania); series5.getData().add(new XYChart.Data(1750, 2)); series5.getData().add(new XYChart.Data(1800, 2)); series5.getData().add(new XYChart.Data(1850, 2)); series5.getData().add(new XYChart.Data(1900, 6)); series5.getData().add(new XYChart.Data(1950, 13)); series5.getData().add(new XYChart.Data(1999, 30)); series5.getData().add(new XYChart.Data(2050, 46)); //Setting the data to area chart areaChart.getData().addAll(series1, series2, series3, series4, series5); //Creating a Group object Group root new Group(areaChart); //Creating a scene object Scene scene new Scene(root, 600, 400); //Setting title to the Stage stage.setTitle(Stacked Area Chart); //Adding scene to the stage stage.setScene(scene); //Displaying the contents of the stage stage.show(); } public static void main(String args[]){ launch(args); }
}
使用以下命令从命令提示符编译并执行保存的java文件。
javac StackedAreaChartExample.java
java StackedAreaChartExample
在执行时上述程序生成一个显示堆积面积图的JavaFX窗口如下所示。