版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JFreeChartJFreeChart 是開放源代碼的免費,但是它的支持文檔需要才能得到。其地址為:rou=15494,當前版本為 1.0.6。筆者的是 1.0.6版。說明:1)source 目錄:為jfreechart 的源碼目錄;lib 目錄:為包目錄,需要關注的包為jfreechart-1.0.6.ja r、gnujaxp.jar 和jcommon-1.0.10.jar 這三個包;根目錄下的 jfreechart-1.0.6-demo.jar 是例子程序,大家雙擊后可看到其中有很多例子的運行結果。環(huán)境配置筆者的開發(fā)環(huán)境如下:一與環(huán)境配置用 JFreeChart 增強JSP 報表的用戶體
2、驗JFreeChart 是一組功能強大、靈活易用的 Java 繪圖API,使用它可以生成多種通用性的報表,包括柱狀圖、餅圖、曲線圖、圖等。它能夠用在Swing 和Web 等中制作自定義的圖表或報表,并且得到廣泛的應用。本文將通過引領讀者學JFreeChart 中餅圖、柱狀圖和曲線圖的進階應用,來達到熟練使用JFreeChart 的目的。JDK:1.5MyEclipse:5.1.1 GATomcat:5.5.28為了后續(xù)的“用JFreeChart 創(chuàng)建基于Web 的圖表”的一個例子的展示,在MyEclipse 中創(chuàng)建一個名為jfreechart 的Web 工程。將的JFreeChart1.0.6
3、 下lib 目錄下的jar 包拷貝到WebRoot/WEB-INF/lib 目錄下。另外還需要在web.xml 文件中增加如下配置:DisplayChart.jfree.chart.servlet.DisplayChartDisplayChart/DisplayChart二柱狀圖在WebRoot 目錄下建立bar 目錄,用來存放柱狀圖的各個例子。首先在該目錄下建立一個sle1.jsp 文件,讓來看一個簡單的柱狀圖的例子,修改后的sle1.jsp 的內容如下所示:img src=width=500 height=300 border=0 usemap=#在瀏覽器中輸入地址.jsp,可看到如下柱狀
4、圖:img src=width=500 height=300 border=0 usemap=#對比該例與前例,可看出createBarChart3D 的倒數(shù)第三個參數(shù)修改成了true,該參數(shù)可用來顯示下方的:。上兩例顯示的只是一個城市類銷量,有時候有對比顯示多個城市的不同肉類,只要將上例稍作修改即可。例如要在圖中表示廣州、東莞、佛山四個城市的四個肉類的銷售情況,只需要將如下三句稍做修改:double data = newdouble 1310, 720, 1130, 440;String rowKeys = , 牛肉,雞肉, 魚肉;String columnKeys = ;例如修改成:dou
5、ble data = newdouble 1310, 1220, 1110,1000,720, 700, 680, 640,1130, 1020, 980, 800,440, 400, 360, 300;String rowKeys = , 牛肉,雞肉, 魚肉;String columnKeys = 廣州, , 東莞, 佛山;在運行該jsp 頁面,可看到如下界面:在上述幾例中,在某個柱子上都沒有顯示相應的數(shù)值,下面讓為每個柱子都加上它的數(shù)值,新建一個sle4.jsp 頁面,其內容如下:img src=width=700 height=400 border=0 use在WebRoot 目錄下建立
6、名為pie 的子目錄,用來存放本中餅圖的實例jsp 頁面。下面讓來看一個簡單的三維餅圖。首先在pie 目錄下建立一個名為sle1.jsp 的頁面。在JFreeChart 中,與餅圖繪制密切相關的類如下:三餅圖map=#運行效果如下所示:注意:jfreechart 的很多版本不兼容,請大家在運行此例時確認了對應的版本。3) ChartFactory可利用該制圖工廠類createChart 來創(chuàng)建一個餅圖的JFreeCha rt 對象,例如:DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue(品德, new D
7、ouble(0.2D); dataset.setValue(體育, new Double(0.2D); dataset.setValue(音樂, new Double(0.2D);dataset.setValue(其余成績, new Double(0.4D);2) DefaultPieDataset默認的餅圖數(shù)據集類,用來餅圖顯示的相關數(shù)據信息。例如:PiePlot pieplot = (PiePlot)jfreechart.getPlot(); pieplot.setLabelFont(new Font(SansSerif, 0, 12); pieplot.setNoDataMessage(
8、No data available); pieplot.setCircular(false); pieplot.setLabelGap(0.02D);餅圖繪制類,可以用來設置餅圖的相關屬性。例如:1) PiePlot下面讓看一個簡單的例子,修改sle1.jsp 的內容如下:img src=width=500 height=300 border=0 usemap=#可以看出,餅圖的繪制與柱狀圖的繪制類似,該例的運行效果如下:有時候還想知道某塊所占的具體分值,或者需要突出顯示某一塊。這時候需要對上例進行部分修改:dataset.setValue(其他, 0.2);后的那段改成:/通過工廠類生成JF
9、reeChart 對象JFreeChart chart = ChartFactory.createChart3D(IT 行業(yè)職業(yè)分布圖, dataset, true, false, false);PiePlot pieplot = (PiePlot) chart.getPlot();pieplot.setLabelFont(new Font(宋體, 0, 12);/沒有數(shù)據的時候顯示的內容pieplot.setNoDataMessage(無數(shù)據顯示);pieplot.setCircular(false);setExplodePercent 方法很重要,它將Label 為某名稱的某塊挖出來突出顯
10、示,而后兩句實現(xiàn)的效果是在“初中高級程序員”等名稱后加上百分比,改成“初中高級程序員=55%”等。加上如上的代碼后,同時還需要將相關的兩個 java 包:.jfree.chart.labels.S tandardPieSectionLabelGenerator 和java.text.NumberFormat 引入到該jsp 頁面中。此時的運行結果如下:通過JFreeChart 還可以提供漂亮的水晶餅圖效果,接著讓新建一個sle3.jsp 頁面來體驗一下超炫美圖吧。修改 sle3.jsp 頁面如下:img src=width=500 height=300 border=0 usemap=#利用s
11、etForegroundAlpha()方法可以設置 3D 餅圖的,利用 se tStartAngle()可以設置其開始角度,利用setDirection()方法可以設置其方向。該例的運行效果如下圖所示:在下例中,顯示的blog 在 2007 年度各月份的量情況,修改后的sle 1.jsp 的內容如下:img src=width=500 height=300 border=0 usemap=#運行后的曲線效果如下圖所示:有時需要顯示各數(shù)據點及其數(shù)值,這是需要對上例進行一點改動,在 JFreeChart chart = ChartFactory.createTimeSeriesChart 后,Te
12、xtTitle subtitle =new TextTitle前加上如下的代碼:XYPlot plot = (XYPlot) chart.getPlot();XYLineAndShRenderer xylineandshrenderer =(XYLineAndShapeRenderlot.getRenderer();/設置網格背景顏色plot.setBackgroundPa(Color.white);/設置網格豎線顏色plot.setGridlinePa(Color.pink);/設置網格橫線顏色plot.setRangeGridlinePa(Color.pink);/設置曲線圖與xy 軸的距
13、離plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D);/設置曲線是否顯示數(shù)據點xylineandshrenderer.setBaseShsVisible(true);/設置曲線顯示各數(shù)據點的值XYItemRenderer xyitem = plot.getRenderer();xyitem.setBaseItemLabelsVisible(true);xyitem.setBaseitiveItemLabelition(new ItemLabelition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BA
14、SELINE_LEFT);xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator();xyitem.setBaseItemLabelFont(new Font(Dialog, 1,14);plot.setRenderer(xyitem);并引入了一些另外的包,引入包的語句變成:運行該實例,效果如下所示:上面兩例的曲線圖都是單曲線的,有時候對兩個曲線進行比較,在 2006 年度和 2007 年度的blog例如對量進行比較,在此種情況下,需要在一個曲線圖中顯示兩個曲線。在此種情況下,只需要在 sle1.jsp 的基礎上新建
15、一個TimeSeries 對象,給它添加數(shù)據后,將其添加到TimeSeriesCollection 型數(shù)據集合對象中,修改后的程序主體部分如下所示:/量統(tǒng)計時間線TimeSeries timeSeries2006 = new TimeSeries(2006 年度, Month.class);TimeSeries timeSeries2007 = new TimeSeries(2007 年度, Month.class);/時間曲線數(shù)據集合TimeSeriesCollection lineDataset = newTimeSeriesCollection();/構造數(shù)據集合timeSeries20
16、06.add(newMonth(1, 2007),7200);timeSeries2006.add(newMonth(2, 2007),7000);timeSeries2006.add(newMonth(3, 2007),4200);timeSeries2006.add(newMonth(4, 2007),8200);timeSeries2006.add(newMonth(5, 2007),7300);timeSeries2006.add(newMonth(6, 2007),8200);timeSeries2006.add(newMonth(7, 2007),9200);timeSeries2
17、006.add(newMonth(8, 2007),7300);timeSeries2006.add(newMonth(9, 2007),9400);timeSeries2006.add(newMonth(10, 2007),7500);timeSeries2006.add(newMonth(11, 2007),6600);timeSeries2006.add(newMonth(12, 2007),3500);timeSeries2007.add(newMonth(1, 2007), 10200);timeSeries2007.add(newMonth(2, 2007),9000);timeS
18、eries2007.add(newMonth(3, 2007),6200);timeSeries2007.add(newMonth(4, 2007),8200);timeSeries2007.add(newMonth(5, 2007),8200);timeSeries2007.add(newMonth(6, 2007),11200);timeSeries2007.add(newMonth(7, 2007),13200);timeSeries2007.add(newMonth(8, 2007),8300);timeSeries2007.add(newMonth(9, 2007),10400);timeSeries2007.add(newMonth(10, 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)化通風空調安裝項目協(xié)議2024版A版
- 三方債務責任轉移協(xié)議2024版
- 2025年度農業(yè)園區(qū)場地租賃安全管理合同范本4篇
- 專業(yè)勞務分包協(xié)議(2024年版)樣本版A版
- 二零二四實習生就業(yè)權益與培訓協(xié)議范本規(guī)范5篇
- 2025年度測繪數(shù)據安全保密協(xié)議4篇
- 專業(yè)標識標牌定制及施工服務協(xié)議版B版
- 專業(yè)攝影委托協(xié)議細則(2024年)版B版
- 2024物業(yè)管理權轉讓服務合同
- 2024版食品安全購銷合作合同范本一
- 微機原理與接口技術考試試題及答案(綜合-必看)
- 勞務投標技術標
- 研發(fā)管理咨詢項目建議書
- 濕瘡的中醫(yī)護理常規(guī)課件
- 轉錢委托書授權書范本
- 一種配網高空作業(yè)智能安全帶及預警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護投標方案
- 蘇教版六年級數(shù)學上冊集體備課記載表
- 內蒙古匯能煤電集團有限公司長灘露天煤礦礦山地質環(huán)境保護與土地復墾方案
- 22S702 室外排水設施設計與施工-鋼筋混凝土化糞池
- 2013日產天籟全電路圖維修手冊45車身控制系統(tǒng)
評論
0/150
提交評論