《jfreechart_折线图,饼图,柱状图,堆栈柱状图(二维图).doc》由会员分享,可在线阅读,更多相关《jfreechart_折线图,饼图,柱状图,堆栈柱状图(二维图).doc(18页珍藏版)》请在金锄头文库上搜索。
1、最近使用jfreechart来生成统计图,使用了折线图,饼图等,因为用的1.0.8a版的jfreechart,与1.0.0版本的地方有很多不同,而且图片生成清晰度比老版的高,如下是我做的demo. 1.所需包 (1) jfreechart-1.0.8a.jar (2) jcommon-1.0.12.jar 2.运行环境 JDK 1.5 3.源代码 import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileOutputStream; import java.text.DecimalFo
2、rmat; import java.text.NumberFormat; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.c
3、hart.axis.ValueAxis; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.
4、renderer.category.BarRenderer; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.renderer.category.StackedBarRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; import or
5、g.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; /* * 实际取色的时候一定要16位的,这样比较准确 * author new */ public class CreateChartServiceImpl private static final String CHART_PATH = E:/test/; public static void main(String args) / TODO Auto-generated method stub CreateChartServic
6、eImpl pm = new CreateChartServiceImpl(); / 生成饼状图 pm.makePieChart(); / 生成单组柱状图 pm.makeBarChart(); / 生成多组柱状图 pm.makeBarGroupChart(); / 生成堆积柱状图 pm.makeStackedBarChart(); / 生成折线图 pm.makeLineAndShapeChart(); /* * 生成折线图 */ public void makeLineAndShapeChart() double data = new double 672, 766, 223, 540, 12
7、6 , 325, 521, 210, 340, 106 , 332, 256, 523, 240, 526 ; String rowKeys = 苹果, 梨子, 葡萄 ; String columnKeys = 北京, 上海, 广州, 成都, 深圳 ; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createTimeXYChar(折线图, x轴, y轴, dataset, lineAndShap.png); /* * 生成分组的柱状图 */ public void makeBarGroupChart() do
8、uble data = new double 672, 766, 223, 540, 126 , 325, 521, 210, 340, 106 , 332, 256, 523, 240, 526 ; String rowKeys = 苹果, 梨子, 葡萄 ; String columnKeys = 北京, 上海, 广州, 成都, 深圳 ; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createBarChart(dataset, x坐标, y坐标, 柱状图, barGroup.png); /* * 生成柱状
9、图 */ public void makeBarChart() double data = new double 672, 766, 223, 540, 126 ; String rowKeys = 苹果 ; String columnKeys = 北京, 上海, 广州, 成都, 深圳 ; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createBarChart(dataset, x坐标, y坐标, 柱状图, bar.png); /* * 生成堆栈柱状图 */ public void makeStackedB
10、arChart() double data = new double 0.21, 0.66, 0.23, 0.40, 0.26 , 0.25, 0.21, 0.10, 0.40, 0.16 ; String rowKeys = 苹果, 梨子 ; String columnKeys = 北京, 上海, 广州, 成都, 深圳 ; CategoryDataset dataset = getBarData(data, rowKeys, columnKeys); createStackedBarChart(dataset, x坐标, y坐标, 柱状图, stsckedBar.png); /* * 生成饼
11、状图 */ public void makePieChart() double data = 9, 91 ; String keys = 失败率, 成功率 ; createValidityComparePimChar(getDataPieSetByUtil(data, keys), 饼状图, pie2.png, keys); / 柱状图,折线图 数据集 public CategoryDataset getBarData(double data, String rowKeys, String columnKeys) return DatasetUtilities .createCategoryD
12、ataset(rowKeys, columnKeys, data); / 饼状图 数据集 public PieDataset getDataPieSetByUtil(double data, String datadescription) if (data != null & datadescription != null) if (data.length = datadescription.length) DefaultPieDataset dataset = new DefaultPieDataset(); for (int i = 0; i data.length; i+) datase
13、t.setValue(datadescriptioni, datai); return dataset; return null; /* * 柱状图 * *param dataset 数据集 * param xName x轴的说明(如种类,时间等) * param yName y轴的说明(如速度,时间等) * param chartTitle 图标题 * param charName 生成图片的名字 * return */ public String createBarChart(CategoryDataset dataset, String xName, String yName, String chartTitle, String charName) JFreeChart chart = ChartFactory.createBarChart(chartTitle, / 图表标题 xName, / 目录轴的显示标签 yName, / 数值轴的显示标签 dataset, / 数据集 PlotOrientation.VERTICAL, / 图表方向:水平、垂直 true, / 是否显示图例(对于简单的柱状图必须是false) false, / 是否生成工具 false / 是否生成URL链接 ); Font labelFon