JFreeChart技術總結(一)

 
一、簡介
JFreeChart也許對大家來說很陌生,它是一款開源的、功能強大的統計圖生成工具,可以直接生成PNG、JPG等各式的文件爲我們java項目的開發增加了一部利器。
它實現了動態數據圖形的完美結合,它是純java的一個開發包,jfreechart不僅能夠實現餅圖,柱狀圖,堆棧拄狀圖,線圖等常規圖形,而且能實現階梯圖,面積圖,散列圖,蠟燭圖形,各種組合圖,多座標圖等多種複雜圖形,JFreeChart的源碼結構很清晰,下載它的doc文檔可以很好的看清楚它的類結構,它完全實現了一個抽象的圖形對象的具體化。
       爲了創建一個可以在web瀏覽器上查看到圖表一般有兩種做法:第一種就是使用applet利用java本身對圖形的支持來顯示一個圖表;第二種就是直接在web服務器端生成好圖表圖片文件後發送給瀏覽器。
    第一種方式顯然對於客戶端要求太高,隨着現在主流瀏覽器放棄對JAVA的支持後,這種方式只適合一些局域網的應用,而對於因特網的環境就顯得不太適合。而我在前一個項目中所用到的正是第一種做法,主要用動態數據加載JFreeChart生成折線圖及柱狀圖,放到applet中在頁面中展示。
二、配置
       在JFreeChart官方站點http://www.jfree.org/jfreechart/index.html可以下載最新版的jar包、源代碼、示例及API。現在最新版本爲1.0.4,我們就以這個版本例子做以說明。
JFreeChart的主要jar包有:jfreechart-1.0.4.jar(Java圖形解決方案可應用於Application/Applet/Servlet/Jsp),jcommon-1.0.8.jar(JFreeChart的公共類庫),gnujaxp.jar(這個jar包應該沒什麼太大的用處,因爲沒有它jfreechart也能正常運行)。jfreechart-1.0.4-demo.jar這個jar包裏主要是它的示例,用javaw方式打開這個jar包就能運行它,就可以看到jfreechart1.0.4的示例界面,雖然JFreeChart本身是開源的,但它的示例可不是開源的。
從官方站點下的jfreechart-1.0.4.zip後,將其解壓縮到本地,lib文件夾下放的是jar包,source文件夾下放的是源代碼,且根目錄下就能夠看到jfreechart-1.0.4-demo.jar。
如果是Application開發,把上述三個文件拷貝到%JAVA_HOME%/LIB中,同時在環境變量CLASSPATH中加入。
如果是WEB開發,以TOMCAT中的一個WEB項目test爲例子說明:
把上述三個文件拷貝到test/WEB-INF/lib中,然後修改test/WEB-INF/web.xml文件,在其中加入如下代碼:
<servlet>
   <servlet-name>DisplayChart</servlet-name>
   <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DisplayChart</servlet-name>
    <url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
我所在的前一個項目中用到的是applet的應用,所以不用配置這麼麻煩,因爲applet只支持jar包的形式,所以只要把我們的源代碼打成jar包連同用到的JFreeChart的jar包一起放到WEB工程的lib文件夾下就可以了。
三、JFreeChart功能介紹
JFreeChart目前是最好的java圖形解決方案,基本能夠解決目前的圖形方面的需求,主要包括如下幾個方面:
pie charts (2D and 3D)   餅圖(平面和立體)
bar charts (regular and stacked, with an optional 3D effect)   柱狀圖
line and area charts   曲線圖
scatter plots and bubble charts
time series, high/low/open/close charts and candle stick charts   時序圖
combination charts   複合圖
pareto charts
gantt charts   甘特圖
wind plots, meter charts and symbol charts
wafer map charts   態圖表,餅圖(二維和三維),柱狀圖(水平、垂直),線圖,點圖,時間變化圖,甘特圖,股票行情圖,混和圖,溫度計圖,刻度圖等常用商用圖表
圖形可以導出成PNG和JPEG格式,同時還可以與PDF和EXCEL關聯。
JFreeChart核心類庫介紹:
研究jfreechart源碼發現源碼的主要由兩個大的包組成:org.jfree.chart及org.jfree.data。其中前者主要與圖形本身有關,後者與圖形顯示的數據有關。
核心類主要有:
類名
類的作用以及簡單描述
JFreeChart
圖表對象,任何類型的圖表的最終表現形式都是在該對象進行一些屬性的定製。JFreeChart引擎本身提供了一個工廠類用於創建不同類型的圖表對象
XXXXXDataset
數據集對象,用於提供顯示圖表所用的數據。根據不同類型的圖表對應着很多類型的數據集對象類
XXXXXPlot
圖表區域對象,基本上這個對象決定着什麼樣式的圖表,創建該對象的時候需要Axis、Renderer以及數據集對象的支持
XXXXXAxis
用於處理圖表的兩個軸:縱軸和橫軸
XXXXXRenderer
負責如何顯示一個圖表對象
XXXXXURLGenerator
用於生成Web圖表中每個項目的鼠標點擊鏈接
XXXXXToolTipGenerator
用於生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章