`
yangpanwww
  • 浏览: 624986 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JFreeChart 生成图

阅读更多

刚刚学会怎么弄的。。也不是很熟悉,O(∩_∩)O哈哈~。。

总结下,web生成的图片的方式,

 第一,使用servlet;返回图片到界面;

 第二,生成图片到某个目录,界面引用图片路径

 

 

使用 JFreeChart 生成饼图(使用第二种):

/**
	 * 生成jFreeChart图片  
	 * @param i -- 生成图片的名称
	 * @param arr  --生成饼图需要的数据
	 * @author yangpanwww
	 * @throws Exception 
	 */
	public static void creatPieChat3D(int i,String [] arr) throws Exception{
		// 创建pie图的数据集方法
		DefaultPieDataset data = PieChart3DTools.getPieDataSet(arr);
		JFreeChart chart = ChartFactory.createPieChart3D("", data, true,false, false);
		 
		PiePlot3D plot = (PiePlot3D) chart.getPlot();
		// 饼图分块的颜色
		plot.setSectionPaint(0, Color.RED); //红牌
		plot.setSectionPaint(1, Color.yellow);
		plot.setSectionPaint(2, Color.white);
		
		
		if (null != chart) {
			// 将图片对象输出到客户端
			OutputStream ous = new FileOutputStream(projPath+"index_img/"+i+".png");
			ChartUtilities.writeChartAsPNG(ous, chart, 500, 300);
		}
	}
	

 

 

 

生成图片数据集的工具类:

/**
 * 生成图片数据集的工具类:
 * @author yangpanwww
 */
class PieChart3DTools {
	 
	/**
	 * 创建用于填充pie图的数据集
	 * @return DefaultPieDataset对象
	 */
	public static DefaultPieDataset getPieDataSet(String [] szjc) {
		// 用来填充pie图的数据集
		DefaultPieDataset dataset = new DefaultPieDataset();
		// 饼图分块名字
		String[] seriesNames = { "红牌", "黄牌", "白牌"};
		for (int i = 0; i < seriesNames.length; i++) {
			 // 设置pie数据集中的数据对
			dataset.setValue(seriesNames[i], Integer.parseInt(szjc[i]));
			//dataset.
		}
		return dataset;
	}
 

 

使用 JFreeChart 生成柱状图(第一种):

<script type="text/javascript">
      var disabledImageZone=document.getElementById("displayChart");
      //清理div中己有的东东:)
      disabledImageZone.innerHTML="";
      var imageZone = document.createElement('img');
      imageZone.setAttribute('id','imageZone');
      //提取服务器上的图片显示下来:
      imageZone.setAttribute('src',"servlet/ChartServlet");
      imageZone.width = "650";  //返回后的图片大小
      imageZone.height = "132";
      disabledImageZone.appendChild(imageZone);  
</script>

 

servlet代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			// 输出图片格式为png格式
			response.setHeader("Cache-Control", "no-cache");
			response.setContentType("image/png");
			
			JFreeChart chart = null;
			// 创建bar图的数据集方法
			DefaultCategoryDataset dataset = ChartTools.getCategoryDataset(jdbctemplate,request);
			// PlotOrientation.HORIZONTAL这个参数说明是水平还是垂直方向VERTICAL
			
			chart = ChartFactory.createBarChart3D("", "", "",dataset, PlotOrientation.VERTICAL, true, false, false);
			 if (null != chart) {
				// 将图片对象输出到客户端
				java.io.OutputStream ous = response.getOutputStream();
				ChartUtilities.writeChartAsPNG(ous, chart, 650, 132);
				ous.flush();
				ous.close();
				System.out.println("***********图片输出完毕....... " );
		}
	}
}

 

 工具类

 

/**
 * 生成图片数据集的工具类:
 * @author yangpanwww
 */
class ChartTools {
	
	
	/**
	 * 生成bar图的数据集:
	 * @return:可用于Bar图的数据集
	 */
	public static DefaultCategoryDataset getCategoryDataset(JdbcTemplate jdbctemplate,HttpServletRequest request) {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		//存储 各个 数据类型 的bean
		 
		for (int series = 0; series < seriesLxs.length; series++) {
			for (int i = 0; i < seriesNames.length; i++) {
				nameValueOfTime[series][i] = jdbctemplate.queryForInt("写您需要的SQL");//你也可以在外面查询好,再传进来
				//System.out.println(nameValueOfTime[series][i]+"  "+seriesNames[i]+"  "+seriesLxs[series]);
				dataset.addValue(nameValueOfTime[series][i], seriesNames[i],seriesLxs[series]);
			}
		}
		return dataset;
	}
 
	private ChartTools(){};
	/** X轴时间维数据序型(当然也可以为标签维度)* */
	private static String[] seriesLxs = { "行政许可", "行政处罚", "其  他"};
	
	private static String[] seriesLxvalue = { "XK", "CF", "QT"};
	
	/** 柱状标签序列(比如做为地点序列) */
	private static String[] seriesNames = { "新增", "修改", "废止" };
	//新增  修改  废止
	private static String[] seriesValues = { "1", "2", "3" };
	/** 每个时间点上每个地区/类型序列的值 */
	private static int[][] nameValueOfTime = new int[seriesLxs.length][seriesNames.length];

}

 

O(∩_∩)O哈哈~。。。我之所以能很快上手。。我得谢谢  javafound 大哥

你们链接到他博客吧,他那有包下载:http://www.iteye.com/topic/170642

分享到:
评论

相关推荐

    jfreechart生成图片及导出pdf 、excel

    在这个“jfreechart生成图片及导出pdf、excel”的主题中,我们将深入探讨如何利用JFreeChart来生成这些图表,并将其导出为PDF和Excel格式。 1. **JFreeChart基本使用** JFreeChart库提供了多种图表类型,包括...

    JFreeChart生成图片并显示

    《JFreeChart生成图片并显示》 在Java开发中,我们常常需要生成各种图表来直观地展示数据,比如折线图、柱状图、饼图等。JFreeChart是一个强大的开源Java库,它提供了丰富的图表生成功能,可以满足开发者在各种应用...

    jfreechart生成各种图表

    jfreechart生成各种图表 柱状 饼状 折线 锥状

    jfreechart部署linux服务器生成图片乱码解决方案

    标题 "jfreechart部署在Linux服务器上生成图片乱码的解决方案" 涉及到的主要知识点是关于Java图形库JFreeChart在Linux环境中的...通过上述步骤,应该能够成功地在Linux环境中使用JFreeChart生成带有中文标签的图表。

    java jfreechart 生成图形报表 饼图,条形图,曲线图

    首先,我们来了解一下如何使用JFreeChart生成饼图。饼图是一种直观地表示各部分与整体之间比例关系的图形。在JFreeChart中,我们可以使用`PieChart`类来创建饼图。需要定义数据集,通常是`DefaultPieDataset`,然后...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...

    JfreeChart-雷达图与导出

    本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用** 雷达图是一种多维数据可视化工具,特别适合于比较多个变量在同一标准下的表现。在JFreeChart中,创建雷达图主要分为以下几...

    JFreeChart生成柱形图完整测试代码

    JFreeChart生成柱形图完整测试代码 放在普通项目里运行main方法就能生成柱形图 不需要添加任何代码 可根据自己需要修改参数

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...

    又见乱码——CentOS下JFreeChart生成图片的中文乱码

    标题"又见乱码——CentOS下JFreeChart生成图片的中文乱码"所指出的问题,是开发者在使用JFreeChart库在CentOS操作系统上生成包含中文字符的图表时遇到的典型问题。JFreeChart是一个强大的Java库,用于生成高质量的...

    Spring+JFreeChart 自动生成统计图

    标题“Spring+JFreeChart 自动生成统计图”涉及的是在Java开发环境中,利用Spring框架和JFreeChart库来动态生成图表的技巧。这篇文章可能是介绍如何在Spring应用中集成JFreeChart,以便为数据可视化提供服务。 ...

    jfreechart生成图像的包

    JFreeChart是一个流行的开源Java库,它提供了丰富的图表功能,使得开发者能够方便地在Java应用程序中生成各种类型的图表,如柱状图、折线图、饼状图等。这个库广泛应用于数据可视化、报告生成、仪表盘创建等多种场景...

    jFreeChart生成报表图片

    在"jFreeChart生成报表图片"的项目中,我们可以看到一个已经准备好的示例,包含了多种图表类型的实现,帮助开发者快速理解和应用jFreeChart。项目中的柱状图用于比较不同类别的数量或值,饼图则用于显示各部分占整体...

    JFREECHART生成的柱图

    JFREECHART柱图

    jfreechart_生成折线图,饼图,柱状图,堆栈柱状图

    jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...

    linux下JFreeChart生成的图片乱码,可以用这个字体

    JFreeChart是一个强大的Java库,它提供了丰富的功能来创建静态和动态的图表,如饼图、柱状图、线图等。在生成这些图表时,如果涉及到中文字符,需要确保所用字体能够正确显示中文。在Windows系统中,由于内置了多种...

    jfreechart雷达图

    利用JFreeChart库,开发者可以轻松地在Java应用中生成雷达图,以直观地展示和比较多维数据。通过理解和实践上述步骤,你可以根据需求创建出符合业务场景的个性化雷达图。 请记得查看附件中的“jfreechart雷达图”...

    用JFreeChart写的雷达图实例

    总结起来,这个实例通过一系列类和方法,利用JFreeChart库创建了一个雷达图,其中包括了数据的组织、图表的配置、标签的生成和图形的绘制等步骤。理解这些文件的作用和相互关系,可以帮助开发者更好地掌握JFreeChart...

Global site tag (gtag.js) - Google Analytics