欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

jfreecharts 表格

更新时间: 2014-01-05 03:07:28 责任编辑: Author_N1

 

jfreecharts 报表
我们以折线图为例子

第一步,构建数据集

/**
	 * 获取数据集
	 * @return
	 */
	private CategoryDataset getDataset() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();

		dataset.addValue(2.8, "冰箱", "1月");
		dataset.addValue(4.2, "冰箱", "2月");
		dataset.addValue(3.9, "冰箱", "3月");
		dataset.addValue(3.8, "冰箱", "4月");
		dataset.addValue(4.2, "冰箱", "5月");
		dataset.addValue(3.9, "冰箱", "6月");
		dataset.addValue(1.7, "冰箱", "7月");
		dataset.addValue(4.2, "冰箱", "8月");
		dataset.addValue(3.9, "冰箱", "9月");
		dataset.addValue(2.5, "冰箱", "10月");
		dataset.addValue(4.2, "冰箱", "11月");
		dataset.addValue(3.9, "冰箱", "12月");

		dataset.addValue(1.2, "彩电", "1月");
		dataset.addValue(3.2, "彩电", "2月");
		dataset.addValue(4.9, "彩电", "3月");
		dataset.addValue(2.5, "彩电", "4月");
		dataset.addValue(3.2, "彩电", "5月");
		dataset.addValue(1.9, "彩电", "6月");
		dataset.addValue(2.7, "彩电", "7月");
		dataset.addValue(3.2, "彩电", "8月");
		dataset.addValue(3.9, "彩电", "9月");
		dataset.addValue(3.0, "彩电", "10月");
		dataset.addValue(1.2, "彩电", "11月");
		dataset.addValue(1.9, "彩电", "12月");

		return dataset;

	}



第二步,根据数据集构建折线图

private JFreeChart createChart() {
		CategoryDataset dataset = getDataset();
		//标题,x轴,y轴,数据集,图标方向,是否显示图例,是否生成工具,是否生成url
		JFreeChart line = ChartFactory.createLineChart("折线图", "时间", "销售额(百万)", dataset, PlotOrientation.VERTICAL, true,
				true, false);

		line.setBackgroundPaint(new Color(200, 200, 255));
		//设置标题文字
		line.getTitle().setFont(new Font("黑体", Font.BOLD, 18));
		//设置底部图例字体
		line.getLegend().setItemFont(new Font("黑体", Font.BOLD, 12));

		CategoryPlot plot = line.getCategoryPlot();

		//网格线的颜色,就是与x轴平行的一条一条的虚线
		plot.setRangeGridlinePaint(new Color(70, 70, 170));

		//设置图区的背景色
		//plot.setBackgroundPaint(new Color(255, 255, 255));

		LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

		//设置第一个根线为蓝色加粗
		renderer.setSeriesStroke(0, new BasicStroke(2.0f));
		renderer.setSeriesPaint(0, new Color(0, 0, 255));

		//设置第2根线为红色加粗
		renderer.setSeriesStroke(1, new BasicStroke(2.0f));
		renderer.setSeriesPaint(1, new Color(255, 0, 0));

		//设置数据点可见
		renderer.setBaseShapesVisible(true);

		//显示数据点的值可见
		renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		renderer.setBaseItemLabelsVisible(true);

		//获取x轴
		CategoryAxis axis = plot.getDomainAxis();
		//获取y轴
		ValueAxis numberAxis = plot.getRangeAxis();
		
		axis.setLabelFont(new Font("黑体", Font.BOLD, 12));
		axis.setTickLabelFont(new Font("黑体", Font.BOLD, 12));
		
		numberAxis.setTickLabelFont(new Font("黑体", Font.BOLD, 12));
		numberAxis.setLabelFont(new Font("黑体", Font.BOLD, 12));

		return line;
	}






第3步,输出图片

//生成图片
	private void createPng() {
		JFreeChart jfreechart = createChart();
		OutputStream os;
		try {
			os = new FileOutputStream("d:/line.png");
			ChartUtilities.writeChartAsPNG(os, jfreechart, 800, 400);
			os.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}




注:附件是代码和支持jar包,包括,折线图,饼图,柱状图的例子
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:07:28
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18610/
本文WWW.DOC100.NET DOC100.NET版权所有。