公司要做一些圖表,各種圖表技術整來整去,覺得還是用jfreechart比較合適。
但是jfreechart雖然開源,但是教程和文檔卻是收錢的,好在用的人也不好,參照網上的一些案例,研究研究也就能用了。
版本:jfreechart的最新版本是1.0.14,那就用這個。
API地址:http://www.jfree.org/jfreechart/api/javadoc/index.html 。沒找到合適的文檔,還是官方的比較靠譜,這個東西還是很有用的。
demo:下載下來的資源包中有個jfreechart-1.0.14-demo.jar,用java -jar 運行就好,例子很全,但是沒有源文件,所以網上找了個,放到同一目錄下,就可以在例子中看源碼了。
準備工作做完了,正式瞭解下jfreechart
JfreeChart 類,這個是必須創建的,這個類的作用就相當於一個最大的容器,jfreechart的所有組件最後都被它整合。
ChartFactory chart的工廠,提供很多方法來創建類型的chart,這些創建的chart都是jfreechart的子類型。
所以要創建一個chart,一般寫法都是 JfreeChart chart = ChartFactory.create***Chart(params......);
***Plot 類,這系列類其實是最主要的東西,這就是jfreechart的數據區域對象,所以的內容其實都包含在這個裏面,有點像window裏面的panel。
***Axis類,這系列的代表了plot中的座標,也就是說通過操作axis類,你可以設置和調整數據區域的座標,這個類創建的對象將被包含在plot對象裏。
***Marker類,這系列的類表示數據區域裏的標記,跟書籤差不多,在數據區域某個數據點做個標記
***Renderer類,這系列的類表示數據區域的渲染器,通過這個可以做一些有意思的事情
***Annotation類,這系列的類表示數據區域的註解,跟標記類似,但是有一些不同,標記更多像一個刻度,而這個更像一個說明,可以設置到渲染器中來做一些區域性的註解來區分數據區域類的一些區域。這個配合java.awt.GradientPaint可以畫一些有特色的背景出來
***Dataset 類,這些類基本都實現Dataset接口,這些類是用來創建jfreechart將使用的各種數據類型的,簡單點 說,就是用來放要顯示的數據的。
所以一個完整的chart可以這麼組成
Jfreechart--plot--axis
--marker
--Renderer--Annotation
--dataset
就先到這兒,下次以我的象限圖爲例,再來詳細描述下。