JavaFX图表(三)之折线图
翻譯自? ?JavaFX - 折線圖
折線圖或折線圖將信息顯示為由直線段連接的一系列數據點(標記)。折線圖顯示數據如何以相等的時間頻率變化。
以下是描繪不同年份學校數量的折線圖。
在JavaFX中,折線圖由名為LineChart的類表示。該類屬于包javafx.scene.chart。通過實例化此類,您可以在JavaFX中創建LineChart節點。
生成折線圖的步驟
要在JavaFX中生成折線圖,您應該按照下面給出的步驟操作。
第1步:創建一個類
創建一個Java類并繼承包javafx.application的Application類。然后,您可以按如下方式實現此類的start()方法。
public class ClassName extends Application { @Override public void start(Stage primaryStage) throws Exception { } }第2步:定義軸
定義折線圖的X和Y軸并為其設置標簽。
在我們的例子中,X軸代表從1960年到2020年的年份,每十年有一個主要的刻度線。
//Defining X axis NumberAxis xAxis = new NumberAxis(1960, 2020, 10); xAxis.setLabel("Years"); //Defining y axis NumberAxis yAxis = new NumberAxis(0, 350, 50); yAxis.setLabel("No.of schools");第3步:創建折線圖
通過實例化包javafx.scene.chart的名為LineChart的類來創建折線圖。對于此類的構造函數,傳遞表示在上一步中創建的X軸和Y軸的對象。
LineChart linechart = new LineChart(xAxis, yAxis);第4步:準備數據
實例化XYChart.Series類。然后將數據(一系列,x和y坐標)添加到此類的Observable列表中,如下所示 -
XYChart.Series series = new XYChart.Series(); series.setName("No of schools in an year"); series.getData().add(new XYChart.Data(1970, 15)); series.getData().add(new XYChart.Data(1980, 30)); series.getData().add(new XYChart.Data(1990, 60)); series.getData().add(new XYChart.Data(2000, 120)); series.getData().add(new XYChart.Data(2013, 240)); series.getData().add(new XYChart.Data(2014, 300));第5步:將數據添加到折線圖
將上一步驟中準備的數據系列添加到折線圖中,如下所示 -
//Setting the data to Line chart linechart.getData().add(series);第6步:創建組對象
在start()方法中,通過實例化名為Group的類來創建組對象。這屬于包javafx.scene。
將在上一步中創建的LineChart(node)對象作為參數傳遞給Group類的構造函數。這應該是為了將它添加到組中,如下所示 -
Group root = new Group(linechart);第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); }例
下表描述了1970年至2014年期間某地區的學校數量。
| 1970年 | 15 |
| 1980年 | 三十 |
| 1990年 | 60 |
| 2000 | 120 |
| 2013 | 240 |
| 2014 | 300 |
以下是一個Java程序,它使用JavaFX生成描繪上述數據的折線圖。
將此代碼保存在名為LineChartExample.java的文件中。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; public class LineChartExample extends Application { @Override public void start(Stage stage) {//Defining the x axis NumberAxis xAxis = new NumberAxis(1960, 2020, 10); xAxis.setLabel("Years"); //Defining the y axis NumberAxis yAxis = new NumberAxis (0, 350, 50); yAxis.setLabel("No.of schools"); //Creating the line chart LineChart linechart = new LineChart(xAxis, yAxis); //Prepare XYChart.Series objects by setting data XYChart.Series series = new XYChart.Series(); series.setName("No of schools in an year"); series.getData().add(new XYChart.Data(1970, 15)); series.getData().add(new XYChart.Data(1980, 30)); series.getData().add(new XYChart.Data(1990, 60)); series.getData().add(new XYChart.Data(2000, 120)); series.getData().add(new XYChart.Data(2013, 240)); series.getData().add(new XYChart.Data(2014, 300)); //Setting the data to Line chart linechart.getData().add(series); //Creating a Group object Group root = new Group(linechart); //Creating a scene object Scene scene = new Scene(root, 600, 400); //Setting title to the Stage stage.setTitle("Line 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 LineChartExample.java java LineChartExample執行時,上述程序生成一個顯示折線圖的JavaFX窗口,如下所示。
?
總結
以上是生活随笔為你收集整理的JavaFX图表(三)之折线图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄仁勋称已与台积电总裁魏哲家见面 释放了
- 下一篇: 全球首创,小鹏汇天飞行汽车 50 米以下