(轉)JFreeChart 中文手冊
轉自: http://guoyiqi.javaeye.com/blog/247661 一、簡介 JFreeChart是JFreeChart公司在開源網站SourceForge.net上的一個項目,是一種Java圖形解決方案(Application/Applet/Servlet/Jsp)。 二、安裝配置 目前最新版本是jfreechart-1.0.3 ,應下載下傳的包: jfreechart-1.0.3.zip(項目包) jfreechart-1.0.3-javadocs.zip(API參考文檔) 1、 首先解壓jfreechart-1.0.3.zip,并關注三個檔案: jfreechart-1.0.3.jar、 jcommon-1.0.6.jar、gnujaxp.jar(這個包就不導進去了,可能導緻警告) 2、 接着把前述三個檔案分别考到: %JAVA_HOME%/LIB及相應項目的/WEB-INF/LIB 3、 配置環境變量CLASSPATH 4、 在/WEB-INF/web.xml檔案中加入 <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <url-pattern>/servlet/DisplayChart</url-pattern> </servlet-mapping> 三、功能介紹 pie charts (2D and 3D):餅圖(平面和立體) bar charts (regular and stacked, with an optional 3D effect):柱狀圖 line and area charts:曲線圖 time series, high/low/open/close charts and candle stick charts:時序圖 圖形可以導出成PNG和JPEG格式 四、現已封裝的模式有 二維矩狀圖 三維矩狀圖 二維餅狀圖 三維餅狀圖 線狀序列圖 時間序列圖 五、實作圖表生成步驟 1、 Dataset對象的建立生成 2、 JFreeChart對象的建立生成 3、 URLGenerator的控制生成 六、原理 将生成的JFreeChart對象,以流的形式生成用PNG格式或JPEG格式系統臨時檔案,然後就可以被通路請求。 七、在實作圖表生成中可能用到的接口與類 org.jfree.chart.JFreeChart:圖表對象類 org.jfree.data.category.XXXDataSet:資料集對象類 org.jfree.chart.plot.XXXPlot圖表區域對象類 org.jfree.chart.axis.XXXAxis:軸對象類 org.jfree.chart.render.XXXRender:修飾刷對象類 可參考(API參考文檔) 八、執行個體 1、 擷取資料集的方式: 1) 以JDBC方式,通過通路封裝類CreateDataSetFromJdbc.java readPieData(String sql)方法獲得餅圖資料集 readCategoryData(String sql) 獲得矩圖資料集 readXYData(String sql) 獲得序清單資料集 主要寫好相應的sql語句 2) 通過自已的方式獲得資料,然後資料集的 setValue(Comparable key, Number value) setValue(Number value, Comparable rowKey, Comparable columnKey) 2 繼承基類BaseChartURLGenerator裡的方法及實作接口ControlURLGenerator。(仿照已有的模式)針對web應用 其中會用到封裝的方法類ChartPlotRender、CreateChart、LabelGenerator 九、建議 為每一個應用jfreechart圖表的子產品寫一SubChartURLGenerator類(繼承自BaseChartURLGenerator) 十、詳細情況可以仿照工作量圖表處理 十一、 詳細設計流程 (1) 擷取資料集dataset 判斷資料擷取是用sql語句組裝友善些,還是自己通過其它方式擷取,再放到dataset友善些。 如果是前者,可能隻需要寫好sql,再調用封裝好的CreateDataSetFromJdbc就可以獲得資料集,這個當然是針對應用資料簡單的。 如果是後者,就需要你自己仿照我在質安站工作量查詢中的圖表處理例子獲得相應的dataset,先通過原來自己的方式獲得資料,然後寫好一個類方法,把傳過的資料一個一個的set到資料集中。 (2) 獲得圖表對象jfreechart 寫好一個方法,針對不同的類型的圖表,使用封裝好的CreateChart類及上步所獲得的資料集dataset,生成相應圖表。并為圖表配入title,citatory,value參數。 (3) 圖表對象表現形式 對于web頁中引用,則可以考慮建立一個繼承自封裝的BaseChartURLGenerator類的子類(可以考慮有前兩步的方法放到此類中),針對其具體控制,實作接口ControlURLGenerator寫好一個控制方法,并引用上步的jfreechart對象,調用已有的方法setChartURL(request, chart); |