JavaFX - 圖表



一般來說,圖表是資料的圖形表示。有各種型別的圖表來表示資料,例如條形圖、餅圖、折線圖、散點圖等。

JavaFX 支援各種餅圖和 XY 圖表。在 XY 平面上表示的圖表包括 AreaChart、BarChart、BubbleChart、LineChart、ScatterChart、StackedAreaChart、StackedBarChart 等。

每個圖表都由一個類表示,所有這些圖表都屬於包 **javafx.scene.chart**。名為 **Chart** 的類是 JavaFX 中所有圖表的基類,而 **XYChart** 是所有在 XY 平面上繪製的圖表的基類。

Charts

在 JavaFX 中建立圖表

要在 JavaFX 中建立圖表,您需要執行以下步驟:

  • 定義圖表的軸
  • 例項化相應的類
  • 準備並將資料傳遞給圖表

例項化相應的類

要建立圖表,請例項化其相應的類。例如,如果您想建立折線圖,則需要例項化名為 **LineChart** 的類,如下所示:

LineChart linechart = new LineChart(xAxis, yAxis);

如以上程式碼所示,在例項化時,您需要分別傳遞兩個表示圖表 X 軸和 Y 軸的物件。

定義軸

一般來說,圖表的軸可以表示為:

  • 數字,例如人口、年齡等
  • 類別,例如一週中的幾天、國家等。

在 JavaFX 中,軸是一個表示 X 軸或 Y 軸的抽象類。它有兩個子類來定義每種型別的軸,即 **CategoryAxis** 和 **NumberAxis**,如下圖所示:

Defining Axis

類別軸

透過例項化此類,您可以定義(建立)一個 X 軸或 Y 軸,其中每個值表示一個類別。您可以透過例項化此類來定義類別軸,如下所示:

CategoryAxis xAxis = new CategoryAxis();

對於此軸,您需要設定類別列表並將標籤設定為軸,如下所示:

//setting the list of categories.  
xAxis.setCategories(FXCollections.<String>observableArrayList
   (Arrays.asList("n ame1", "name2"....)));  

//Setting label to the axis  
xAxis.setLabel("name of the axis ");

數字軸

透過例項化此類,您可以定義(建立)一個 X 軸或 Y 軸,其中每個值表示一個數值。您可以使用此軸的任何數字型別,例如 Long、Double、BigDecimal 等。您可以透過例項化此類來定義數字軸,如下所示:

//Defining the axis 
NumberAxis yAxis = new NumberAxis();  

//Setting labelto the axis 
yAxis.setLabel("name of the axis");

將資料傳遞給 XY 圖表

所有 XY 圖表都沿 XY 平面表示。要在圖表中繪製一組點,我們需要指定一系列 XY 座標。

**<X,Y>** 類屬於 **javafx.scene.chart** 包,您可以使用此類將資料傳送到圖表。此類儲存一個命名系列的可觀察列表。您可以使用 **XYChart.Series** 類的 **getData()** 方法獲取此列表,如下所示:

ObservableList list = series.getData();

其中,series 是 XYChart.Series 類的物件。您可以使用 **add()** 方法將資料新增到此列表,如下所示:

list.add(new XYChart.Data(x-axis data, y-axis data));

這兩行程式碼可以寫在一起,如下所示:

series.getData().add(new XYChart.Data(x-axis data, y-axis data));

JavaFX 中的圖表型別

下表描述了 JavaFX 提供的各種圖表(類):

序號 圖表和描述
1 餅圖

餅圖是將值表示為圓的不同顏色切片。這些切片已標記,並且與每個切片相對應值的圖表中表示。

在 JavaFX 中,餅圖由名為 **PieChart** 的類表示。此類屬於 **javafx.scene.chart** 包。

2 折線圖

折線圖或折線圖將資訊顯示為一系列資料點(標記),這些資料點透過直線段連線。折線圖顯示資料如何在相同的時間頻率下變化。

在 JavaFX 中,折線圖由名為 **LineChart** 的類表示。此類屬於 **javafx.scene.chart** 包。透過例項化此類,您可以在 JavaFX 中建立 LineChart 節點。

3 面積圖

面積圖用於繪製基於區域的圖表。它繪製給定點序列和軸之間的區域。通常,此圖表用於比較兩個數量。

在 JavaFX 中,面積圖由名為 **AreaChart** 的類表示。此類屬於 **javafx.scene.chart** 包。透過例項化此類,您可以在 JavaFX 中建立 AreaChart 節點。

4 條形圖

條形圖用於使用矩形條表示分組資料。這些條的長度表示值。條形圖中的條可以垂直或水平繪製。

在 JavaFX 中,條形圖由名為 **BarChart** 的類表示。此類屬於 **javafx.scene.chart** 包。透過例項化此類,您可以在 JavaFX 中建立 BarChart 節點。

5 氣泡圖

氣泡圖用於繪製三維資料。第三維將由氣泡的大小(半徑)表示。

在 JavaFX 中,氣泡圖由名為 **BubbleChart** 的類表示。此類屬於 **javafx.scene.chart** 包。透過例項化此類,您可以在 JavaFX 中建立 BubbleChart 節點。

6 散點圖

散點圖是一種使用笛卡爾平面中兩個變數的值繪製的圖形。它通常用於找出兩個變數之間的關係。

在 JavaFX 中,散點圖由名為ScatterChart的類表示。此類屬於javafx.scene.chart包。透過例項化此類,您可以在 JavaFX 中建立一個 ScatterChart 節點。

7 堆疊區域圖

在 JavaFX 中,堆疊區域圖由名為StackedAreaChart的類表示。

此類屬於javafx.scene.chart包。透過例項化此類,您可以在 JavaFX 中建立一個 StackedAreaChart 節點。

8 堆疊條形圖

在 JavaFX 中,堆疊條形圖由名為StackedBarChart的類表示。

此類屬於javafx.scene.chart包。透過例項化此類,您可以在 JavaFX 中建立一個 StackedBarChart 節點。

廣告