利用JFreeChart生成多軸圖表

 

通過JFreeChart插件還可以生成擁有多個座標軸的圖表,簡稱多軸圖表。在生成多軸圖表時,必須通過繪圖區對象,因爲在JFreeChart中各種風格的統計圖均是繪製在繪圖區對象上的,一個繪圖區對象可以接收多個座標軸對象、數據集對象和繪圖風格對象,向單軸圖表中添加附加軸的基本步驟如下。

(1)創建一個座標軸對象並添加到繪圖區對象當中。

(2)將相應的繪圖數據集對象添加到繪圖區對象當中。

(3)通過繪圖區對象將相應的繪圖數據集對象和對應的座標軸對象建立映射關係。

(4)創建一個用來描述繪圖數據的圖形對象,並添加到繪圖區對象當中。

下面是一個多軸圖表之雙軸圖表的典型應用,下面將以此講解多軸圖表的具體生成方法。

*  實例位置:光盤/mingrisoft/14/dxyy/01

該典型應用生成的多軸圖表的效果如圖14.10所示。

image020.jpg

圖14.10  利用JFreeChart生成多軸圖表

因爲在繪製多軸圖表時,需要用到繪圖區對象,所以在這裏首先獲得繪圖區對象,代碼如下:

CategoryPlot plot = chart.getCategoryPlot();

下面創建一個座標軸對象,並添加到繪圖區對象當中,代碼如下:

ValueAxis axis1 = new NumberAxis("季度銷售彙總    單位:萬冊");

plot.setRangeAxis(1, axis1);

在創建座標軸對象時,入口參數爲座標軸的名稱。在通過繪圖區對象的setRangeAxis()方法將座標軸對象添加到繪圖區時,需要提供兩個入口參數,第一個爲座標軸的索引位置,要求爲正整數,繪圖區默認的座標軸索引爲“0”,所以這裏將其設爲“1”;第二個爲座標軸對象。

下面的代碼負責封裝繪圖數據集,並將其添加到繪圖區對象當中,代碼如下:

DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();

// 封裝繪圖數據集的具體代碼略

plot.setDataset(1, dataset1);

在通過繪圖區對象的setDataset()方法將繪圖數據集對象添加到繪圖區時,同樣需要提供兩個入口參數,第一個爲數據集的索引位置,要求爲正整數,繪圖區默認的繪圖數據集索引爲“0”,所以這裏將其設爲“1”;第二個爲繪圖數據集對象。

下面需要將繪圖數據集對象和欲採用的座標軸對象建立映射關係,方法如下:

plot.mapDatasetToRangeAxis(1, 1);

在通過繪圖區對象的mapDatasetToRangeAxis()方法將繪圖數據集對象和座標軸對象建立映射關係時,同樣需要提供兩個入口參數,第一個爲數據集的索引位置;第二個爲座標軸的索引位置。

*   注意:並不是索引位置相同的繪圖數據集和座標軸是一一對應的,如果不爲索引位置爲非0的繪圖數據集映射對應的座標軸,JFreeChart默認採用索引位置爲0的座標軸,所以,也可以利用一個座標軸來描述圖形對象的數據信息。

最後,創建一個用來描述繪圖數據的圖形對象,並添加到繪圖區對象當中,代碼如下:

CategoryItemRenderer renderer1 = new LineAndShapeRenderer();

renderer1.setSeriesPaint(0, Color.BLACK);

plot.setRenderer(1, renderer1);

*   注意:用來描述繪圖數據的圖形對象和繪圖數據集的索引是一一對應的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章