· 一:jfreechart介紹
jfreechart是一個(gè)免費創(chuàng )建圖片的java工具.可以創(chuàng )建如下圖形:
餅圖(pie charts;)
曲線(xiàn)圖(line charts )
柱狀圖(horizontal/vertical bar charts)
甘特圖(Gantt charts; )
XY plots and scatter plots;
time series, high/low/open/close charts and candle stick charts;
combination charts;
Pareto charts;
bubble charts;
wind plots, meter charts and symbol charts;
從以下地址可以看到j(luò )freechart可以創(chuàng )建的圖形類(lèi)型
http://www.jfree.org/jfreechart/samples.html
sourceforge有一個(gè)基于jfreechart的項目Cewolf可以很方便的在jsp/servlet中創(chuàng )建圖片
jfreechart目前(2003-05-08)版本為0.98
希望得到詳細的信息或下載jfreechart請訪(fǎng)問(wèn)如下站點(diǎn):
http://www.jfree.org/jfreechart/
· 二:特別說(shuō)明:
jfreechart是一個(gè)開(kāi)源項目,但是文檔是需要40美金去購買(mǎi)的。
還有一個(gè)很重要的問(wèn)題,jfreechart如果使用中文,他使用的默認字體
顯示出來(lái)的中文會(huì )很模糊,你可能需要修改源代碼。
下面我就舉幾個(gè)簡(jiǎn)單的例子說(shuō)明一下如何使用jfreechart創(chuàng )建圖片
在開(kāi)發(fā)中有可能會(huì )導入以下的類(lèi)
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartUtilities;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.TextTitle;
import com.jrefinery.chart.axis.NumberAxis;
import com.jrefinery.chart.plot.CategoryPlot;
import com.jrefinery.chart.plot.PiePlot;
import com.jrefinery.data.Day;
import com.jrefinery.data.DefaultCategoryDataset;
import com.jrefinery.data.DefaultPieDataset;
import com.jrefinery.data.TimeSeries;
import com.jrefinery.data.TimeSeriesCollection;
import com.jrefinery.data.TimeSeriesDataPair;
在0.98以后包由com.jrefinery.*改變?yōu)?org.jfree
· 三:創(chuàng )建餅圖
//圖片標題
String title = "空調2002年市場(chǎng)占有率";
//設定數據源
DefaultPieDataset piedata = new DefaultPieDataset();
//第一個(gè)參數為名稱(chēng),第二個(gè)參數是double數
piedata.setValue("聯(lián)想", 27.3);
piedata.setValue("長(cháng)城", 12.2);
piedata.setValue("海爾", 5.5);
piedata.setValue("美的", 17.1);
piedata.setValue("松下", 9.0);
piedata.setValue("科龍", 19.0);
//創(chuàng )建JFreeChart,都使用ChartFactory來(lái)創(chuàng )建JFreeChart,很標準的工廠(chǎng)設計模式
JFreeChart chart =
ChartFactory.createPieChart(title, piedata, true, true, true);
//設定圖片標題
chart.setTitle(new TextTitle(title, new Font("隸書(shū)", Font.99vALIC, 15)));
//chart.addSubtitle(new TextTitle("2002財年分析", new Font("隸書(shū)", Font.99vALIC, 12)));
//設定背景
chart.setBackgroundPaint(Color.white);
//chart.s
//餅圖使用一個(gè)PiePlot
PiePlot pie = (PiePlot)chart.getPlot();
//pie.setSectionLabelType(PiePlot.NAME_AND_PERCENT_LABELS);
pie.setSectionLabelType(PiePlot.NAME_AND_VALUE_LABELS);
//設定顯示格式(名稱(chēng)加百分比或數值)
pie.setPercentFormatString("#,###0.0#%");
//設定百分比顯示格式
pie.setBackgroundPaint(Color.white);
pie.setSectionLabelFont(new Font("黑體", Font.TRUETYPE_FONT, 12));
//設定背景透明度(0-1.0之間)
pie.setBackgroundAlpha(0.6f);
//設定前景透明度(0-1.0之間)
pie.setForegroundAlpha(0.90f);
//輸出文件到指定目錄
String rfname = MathUtil.getRoundCode(12) + ".jpeg";
String fileName = "d:/test/" + rfname;
try {
//可以保存文件為jpg或png格式。
ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600);
//第一個(gè)參數為文件名
//第二個(gè)參數質(zhì)量
//第三個(gè)參數為哪個(gè)chart創(chuàng )建圖片
//第四個(gè)寬度
//第五個(gè)高度
} catch (IOException exz) {
System.out.print("....Cant´t Create image File");
}
其實(shí)使用JFreeChart創(chuàng )建圖片很簡(jiǎn)單,不同的的圖片類(lèi)型區別在于設置數據集。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。