JFreeChart中柱狀圖的詳細設定
柱狀圖: bar charts (regular and stacked, with an optional 3D effect),用到的主要類如下: org.jfree.chart.JFreeChart:圖表對象,任何類型的圖表的最終表現形式都是在該對象進行一些屬性的定制。JFreeChart引擎本身提供了一個工廠類用于建立不同類型的圖表對象 org.jfree.data.category.CategoryDataset:資料集對象,用于提供顯示圖表所用的資料。根據不同類型的圖表對應着很多類型的資料集對象類 org.jfree.chart.plot.CategoryPlot:圖表區域對象,基本上這個對象決定着什麼樣式的圖表,建立該對象的時候需要Axis、Renderer以及資料集對象的支援 org.jfree.chart.axis.CategoryAxis:用于處理圖表的兩個軸:縱軸和橫軸 org.jfree.chart.render.CategoryRender:負責如何顯示一個圖表對象 org.jfree.chart.urls.CategoryURLGenerator:用于生成Web圖表中每個項目的滑鼠點選連結 CategoryToolTipGenerator:用于生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類 org.jfree.chart.axis.ValueAxis:用于處理圖表中的柱 |
14:35 | 永久連結 | 浏覽 (715) | 評論 (1) | 收藏 | jfreechart | |
永久連結 |
http://laiseeme.iteye.com/blog/105767 |
評論 共 1 條 | 發表評論 |
laiseeme 2007-07-26 14:36
代碼
|
JfreeChart學習總結
關鍵字: JfreeChart
自己最近學習了JfreeChart的使用,覺得這個冬冬的功能非常強大,總結一下。主要介紹JfreeChart生成圖檔的幾種方式 先從網上找點介紹。 一、簡介 WW 的發展使得基于網際網路的應用程式不再局限于靜态或者簡單的動态内容提供。傳統的一些以軟體包形式釋出應用程式例如報表系統等都在逐漸搬到網際網路上。但是這兩者之間有着天壤之别,雖然對于資料擷取、業務處理等方面基本類似,但是最大的差别在于使用者界面。為了能在web浏覽器上顯示要求使用者界面使用 HTML以及圖檔的方式來展現資料,而傳統的一些利用作業系統本身的控件來開發的使用者界面無法适應琳琅滿目的用戶端,是以在這裡也變得無能為力。回到本文的題目上來,為了建立一個可以在web浏覽器上檢視到圖表一般有兩種做法:第一種就是使用applet利用java本身對圖形的支援來顯示一個圖表;第二 種就是直接在web伺服器端生成好圖表圖檔檔案後發送給浏覽器。第一種方式顯然對于用戶端要求太高,随着現在主流浏覽器放棄對JAVA的支援後,這種方式 隻适合一些區域網路的應用,而對于網際網路的環境就顯得不太适合。是以我們下面将介紹一個JAVA的圖表引擎JFreeChart用來産生基于WEB的圖表。 JFreeChart 項目簡介 JFreeChart是開放源代碼站點SourceForge.net上的一個JAVA項目,它主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普 通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。這些不同式樣的圖表基本上可以滿足目前的要求。 二、JFreeChart擷取。 JFreeChart 是JFreeChart公司在開源網站SourceForge.net上的一個項目,該公司的主要産品有如下: 1.JFreeReport :報表解決工具 2.JFreeChart:Java 圖形解決方案(Application/Applet/Servlet/Jsp) 3.JCommon :JFreeReport和JFreeChart的公共類庫 4.JFreeDesigner :JFreeReport的報表設計工具 我們可以從jfree官方網站上擷取最新版本和相關資料(但是jfree的document需要40美金才能擷取), 擷取位址:http://www.jfree.org/jfreechart/index.html(同時可以獲得簡明介紹) 我們以目前最新版本:jfreechart-1.0.1.zip為例子進行說明。 三、JFreeChart配置安裝 1 、解壓jfreechart-1.0.1.zip.zip到指定位置,其中source是jfreechart的源碼,jfreechart-1.0.1-demo.jar 是例子程式,可以先運作一下看看各種效果,就知道他的nb之處了。 2 、為了配置成功,我們需要關注的檔案有如下三個: 設定classpath。加入下面三個jar包。 jfreechart-1.0.1.jar 、jcommon-1.0.0.jar、gnujaxp.jar 加上第三個jar包有時web.xml會報錯,把它去掉就好了。 至此jfreechart的配置就完成了,下面就可以進行jfreechart的開發了。這裡值得提出的是jfreechart的類 結構設計前後相容性不是很好,不同版本的jfreechart中類庫結構可能不一樣,有時候可能需要查源碼。如果是中文顯示的時候可能依據觀感需要改變源碼的字型。 四、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。其中前者主要與圖形 本身有關,後者與圖形顯示的資料有關。具體研究如果大家有興趣的話可以自己研究 。 核心類主要有: org.jfree.chart.JFreeChart :圖表對象,任何類型的圖表的最終表現形式都是在該對象進行一些屬性的定制。JFreeChart引擎本身提供了一個工廠類用于建立不同類型的圖表對象 org.jfree.data.category.XXXDataSet: 資料集對象,用于提供顯示圖表所用的資料。根據不同類型的圖表對應着很多類型的資料集對象類 org.jfree.chart.plot.XXXPlot :圖表區域對象,基本上這個對象決定着什麼樣式的圖表,建立該對象的時候需要Axis、Renderer以及資料集對象的支援 org.jfree.chart.axis.XXXAxis :用于處理圖表的兩個軸:縱軸和橫軸 org.jfree.chart.render.XXXRender :負責如何顯示一個圖表對象 org.jfree.chart.urls.XXXURLGenerator: 用于生成Web圖表中每個項目的滑鼠點選連結 XXXXXToolTipGenerator: 用于生成圖象的幫助提示,不同類型圖表對應不同類型的工具提示類 個人感覺JFreeChart可以滿足大部分圖檔建立的需要,美中不足的是:對字型的設定做的不夠好,特别是使用中文的時候字型很不清晰。因為這個原因建議你自己去修改他的源代碼,最好使用properties檔案去設定字型.還有就是文檔要錢是以要多花點時間去看源代碼。或多上社群. 五.開始開發 對JfreeChart有了初步了解并做好準備工作之後,開始作例子程式試驗。在這裡我隻介紹餅圖的做法,而這張圖采用不同的方式進行輸出,其他類型的圖檔可以參考jfreechart提供的例子,做法都差不多。 1) 直接生成圖檔 代碼
<script>render_code();</script> 2) 采用servlet和struts的action方式輸出 采用這種方式輸出,不用生成圖檔。 A .servlet輸出 代碼
<script>render_code();</script> B .struts的action方式輸出 隻将這條語句加上try catch即可,并傳回null。 代碼
<script>render_code();</script> 其實采用這兩種方式與生成圖檔的方式改動并不大 加上語句response.setContentType("image/jpeg"); ChartUtilities.writeChartAsJPEG(new FileOutputStream("D:\\ 項目狀态分布.jpg");,100,chart,640,480,null); 檔案流改成response的輸出流就可以了 hartUtilities.writeChartAsJPEG(response.getOutputStream(),100,chart,800,600,null); 3)jsp+servlet+javabean方式 1. Create ChartViewer servlet 代碼
|