JavaFX图表(四)之面积图
翻譯自??JavaFX - 面積圖
面積圖用于繪制基于區域的圖表。它繪制給定系列點與軸之間的區域。通常,此圖表用于比較兩個數量。
以下是一張區域圖表,描繪了一個星期內兩個人消耗的水果數量。
?
在JavaFX中,Area圖表由名為AreaChart的類表示。該類屬于包javafx.scene.chart。通過實例化此類,您可以在JavaFX中創建AreaChart節點。
生成面積圖的步驟
要在JavaFX中生成面積圖,請按照以下步驟操作。
第1步:創建一個類
創建一個Java類并繼承包javafx.application的Application類,并按如下方式實現此類的start()方法。
public class ClassName extends Application { @Override public void start(Stage primaryStage) throws Exception { } }第2步:定義軸
定義面積圖的X和Y軸并為其設置標簽。在我們的示例中,X軸表示一周中的天數,y軸表示消耗的水果單位。
//Defining the X axis CategoryAxis xAxis = new CategoryAxis(); //Defining the y Axis NumberAxis yAxis = new NumberAxis(0, 15, 2.5); yAxis.setLabel("Fruit units");第3步:創建面積圖
通過實例化包javafx.scene.chart的名為AreaChart的類來創建折線圖。對于此類的構造函數,傳遞表示在上一步中創建的X軸和Y軸的對象。
//Creating the Area chart AreaChart<String, Number> areaChart = new AreaChart(xAxis, yAxis); areaChart.setTitle("Average fruit consumption during one week");第4步:準備數據
實例化XYChart.Series類。然后將數據(一系列,x和y坐標)添加到此類的Observable列表中,如下所示 -
//Prepare XYChart.Series objects by setting data XYChart.Series series1 = new XYChart.Series(); series1.setName("John"); series1.getData().add(new XYChart.Data("Monday", 3)); series1.getData().add(new XYChart.Data("Tuesday", 4)); series1.getData().add(new XYChart.Data("Wednesday", 3)); series1.getData().add(new XYChart.Data("Thursday", 5)); series1.getData().add(new XYChart.Data("Friday", 4)); series1.getData().add(new XYChart.Data("Saturday", 10)); series1.getData().add(new XYChart.Data("Sunday", 12)); XYChart.Series series2 = new XYChart.Series(); series2.setName("Jane"); series2.getData().add(new XYChart.Data("Monday", 1)); series2.getData().add(new XYChart.Data("Tuesday", 3)); series2.getData().add(new XYChart.Data("Wednesday", 4)); series2.getData().add(new XYChart.Data("Thursday", 3)); series2.getData().add(new XYChart.Data("Friday", 3)); series2.getData().add(new XYChart.Data("Saturday", 5)); series2.getData().add(new XYChart.Data("Sunday", 4));第5步:將數據添加到面積圖
將上一步驟中準備的數據系列添加到面積圖中,如下所示 -
//Setting the XYChart.Series objects to area chart areaChart.getData().addAll(series1,series2);第6步:創建組對象
在start()方法中,通過實例化名為Group的類來創建組對象,該類屬于包javafx.scene。
將在上一步中創建的AreaChart(node)對象作為參數傳遞給Group類的構造函數。這應該是為了將它添加到組中,如下所示 -
Group root = new Group(areaChart);第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); }例
下表描述了John和Jane在一周內消耗的水果數量。
| 星期一 | 3 | 1 |
| 星期二 | 4 | 3 |
| 星期三 | 3 | 4 |
| 星期四 | 五 | 3 |
| 星期五 | 4 | 3 |
| 星期六 | 10 | 五 |
| 星期日 | 12 | 4 |
以下是一個Java程序,它生成一個區域圖,使用JavaFX描述上述數據。
將此代碼保存在名為AreaChartExample.java的文件中。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.chart.AreaChart; import javafx.scene.chart.CategoryAxis; import javafx.stage.Stage; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; public class AreaChartExample extends Application { @Override public void start(Stage stage) { //Defining the X axis CategoryAxis xAxis = new CategoryAxis(); //defining the y Axis NumberAxis yAxis = new NumberAxis(0, 15, 2.5); yAxis.setLabel("Fruit units"); //Creating the Area chart AreaChart<String, Number> areaChart = new AreaChart(xAxis, yAxis);areaChart.setTitle("Average fruit consumption during one week"); //Prepare XYChart.Series objects by setting data XYChart.Series series1 = new XYChart.Series(); series1.setName("John"); series1.getData().add(new XYChart.Data("Monday", 3)); series1.getData().add(new XYChart.Data("Tuesday", 4)); series1.getData().add(new XYChart.Data("Wednesday", 3)); series1.getData().add(new XYChart.Data("Thursday", 5)); series1.getData().add(new XYChart.Data("Friday", 4));series1.getData().add(new XYChart.Data("Saturday", 10)); series1.getData().add(new XYChart.Data("Sunday", 12)); XYChart.Series series2 = new XYChart.Series(); series2.setName("Jane"); series2.getData().add(new XYChart.Data("Monday", 1)); series2.getData().add(new XYChart.Data("Tuesday", 3)); series2.getData().add(new XYChart.Data("Wednesday", 4)); series2.getData().add(new XYChart.Data("Thursday", 3)); series2.getData().add(new XYChart.Data("Friday", 3)); series2.getData().add(new XYChart.Data("Saturday", 5)); series2.getData().add(new XYChart.Data("Sunday", 4)); //Setting the XYChart.Series objects to area chart areaChart.getData().addAll(series1,series2); //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("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 AreaChartExample.java java AreaChartExample執行時,上述程序生成一個顯示面積圖的JavaFX窗口,如下所示。
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的JavaFX图表(四)之面积图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能无所不能?美国要用“
- 下一篇: 三星计划 2026 年量产 8nm 车用