有鑑於圖表的重要性,因此JavaFX內建圖表,包括圓形圖、區域圖、長條圖、折線圖、散佈圖、泡泡圖、堆疊區域圖與堆疊長條圖等,分別由以下類別建立:
- 圓形圖:javafx.scene.chart.PieChart類別。
- 區域圖:javafx.scene.chart.AreaChart類別。
- 長條圖:javafx.scene.chart.BarChart類別。
- 泡泡圖:javafx.scene.chart.BubbleChart類別。
- 折線圖:javafx.scene.chart.LineChart類別。
- 散佈圖:javafx.scene.chart.ScatterChart類別。
- 堆疊區域圖:javafx.scene.chart.StackedAreaChart類別。
- 堆疊長條圖:javafx.scene.chart.StackedBarChart類別。
PieChart類別與繼承自XYChart抽象類別的圖表類別之最大差別在於,前者僅以PieChart.Data類別設定各扇形區域的資料,而後者則是先以XYChart.Series類別設定各數列,再以XYChart.Data類別設定各數列的資料,因此可允許多個數列資料在同一圖表中。
此外,PieChart類別與XYChart抽象類別繼承自Chart抽象類別,為JavaFX圖表的基礎類別。Chart抽象類別分別定義以下的屬性值:
- animated:當資料改變時,是否以動態的方式顯示圖表。
- legend:圖表圖例 (Legend)。
- legendSide:圖表圖例的置放位置。
- legendVisible:是否顯示圖表圖例。
- title:圖表標題 (Title)。
- titleSide:圖表標題的置放位置。
- 類別座標軸:javafx.scene.chart.CategoryAxis類別。
- 數值座標軸:javafx.scene.chart.NumberAxis類別。
- 圓形圖:javafx.scene.chart.PieChartBuilder類別。
- 區域圖:javafx.scene.chart.AreaChartBuilder類別。
- 長條圖:javafx.scene.chart.BarChartBuilder類別。
- 泡泡圖:javafx.scene.chart.BubbleChartBuilder類別。
- 折線圖:javafx.scene.chart.LineChartBuilder類別。
- 散佈圖:javafx.scene.chart.ScatterChartBuilder類別。
- 堆疊區域圖:javafx.scene.chart.StackedAreaChartBuilder類別。
- 堆疊長條圖:javafx.scene.chart.StackedBarChartBuilder類別。
區域圖 (Area Chart) 用以強調一段時間的變動程度,例如可使用區域圖繪製代表一段時間內利潤的資料,強調利潤總和。區域圖也可藉由顯示繪製值的總和,顯示部分與整體的關係。下圖為區域圖之向下分析示範:
長條圖 (Bar Chart) 用以顯示一段時間內資料的變更或比較不同項目間的差異,長條圖又可分為水平長條圖與垂直長條圖。但與區域圖不同的是,長條圖須同時以CategoryAxis與NumberAxis類別設定座標軸的類型,若以CategoryAxis設定水平座標軸 (則為類別)、NumberAxis設定垂直座標軸 (則為數值),則為垂直長條圖;反之,若以NumberAxis設定水平座標軸 (則為數值)、CategoryAxis設定垂直座標軸 (則為類別),則為水平長條圖,在開發長條圖時須特別注意。下圖為長條圖之向下分析示範:
折線圖 (Line Chart) 用以顯示一段時間內的連續資料,且根據一般的比例進行設定,因此適合顯示相等間隔內資料的趨勢,在折線圖中,類別資料沿著水平座標軸均勻分散,所有資料沿著垂直座標軸均勻分散。下圖為折線圖之向下分析示範:
散佈圖 (Scatter Chart) 與折線圖十分類似,同樣用以顯示一段時間內的連續資料,且根據一般的比例進行設定,因此適合顯示相等間隔內資料的趨勢。兩者的差別在於,在散佈圖中,其水平與垂直座標軸均為數值資料,水平與垂直的交會為單一座標點,座標點依據資料會平均或不平均的分佈在散佈圖上。下圖為散佈圖之示範:
泡泡圖 (Bubble Chart) 為散佈圖的變化,泡泡圖常用以顯示財務資料,座標點以泡泡呈現,不同的泡泡大小用以強調數值的大小。與散佈圖不同的是,為處理泡泡的大小,因此需以XYChart.Data類別分別設定X座標軸資料、Y座標軸資料與泡泡的大小。下圖為泡泡圖之示範:
堆疊區域圖 (Stacked Area Chart) 類似於區域圖,不同的是,堆疊區域圖在資料數列上堆疊兩個以上的資料數列,而且Y座標軸資料為個類別資料的加總。下圖為堆疊區域圖之向下分析示範:
堆疊長條圖 (Stacked Bar Chart) 類似於長條圖,不同的是,堆疊長條圖在資料數列上堆疊兩個以上的資料數列。下圖為堆疊長條圖之向下分析示範:
除了以類別處理之外,亦可使用CSS設定圖表樣式,其中較特殊的是長條圖,可使用圖像代替原有的長條樣式:
【參考資料】
[1] 黃嘉輝,深入研究JavaFX 2。
[2] 黃嘉輝,深入研究Java Swing。
[3] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[5] JavaFX 2.2 API Specification.
[6] Java Platform, Standard Edition 7 API Specification.
© Chia-Hui Huang
沒有留言:
張貼留言