`
xiaofengtoo
  • 浏览: 493927 次
  • 性别: Icon_minigender_1
  • 来自: xiamen
社区版块
存档分类
最新评论

JFreeChart 之一:柱状图实现

 
阅读更多

注: 项目使用SSH , jfreechart-1.0.13 版本

 

 

准备工作:

 

1:JFreeChart Jar包  可去官方下载JFreeChart ,此处我引用了 jcommon-1.0.16.jar , jfreechart-1.0.13.jar 

     放入WEB-INF\lib 

 

2:添加servlet 支持,打开web.xml 文件 添加以下支持

 

	 <servlet>
        <servlet-name>DisplayChart</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DisplayChart</servlet-name>
        <url-pattern>/servlet/DisplayChart</url-pattern>
    </servlet-mapping>

 

3: 编写报表

 

   /* Action: */

// 从数据库中查询 需要显示的数据
List list = commonService.findBySql(query);		
int count=0;
DefaultCategoryDataset data = new DefaultCategoryDataset(); 
if(list!=null && list.size()>0){
	int len = list.size();
	// 组建数据
	for(int i=0;i<len;i++){
		Object[] obj = (Object[]) list.get(i);
		count+=new Double (obj[1].toString());
		data.addValue(new Double(obj[1].toString()), "", obj[0].toString()+"月");
	}
	
	CategoryDataset dataset = data; 
	JFreeChart chart = ChartFactory.createBarChart3D("",year+"年","人数",dataset,PlotOrientation.VERTICAL,true,true,false);
	//设置字体,不然会中文乱码的
	 Font font = new Font("宋体", Font.BOLD, 16); 
	 TextTitle title = new TextTitle("每月录入统计", font); 
	 //副标题 
	 TextTitle subtitle = new TextTitle("总人数:"+count, new Font("宋体", Font.BOLD, 12)); 
	 chart.addSubtitle(subtitle); 
	 chart.setTitle(title); //标题
	//////////////////////////
	JFreeChartUtil.barChart3DStyle(chart);
	String filename = ServletUtilities.saveChartAsPNG(chart, 800, 600,null, request.getSession());   
  String pieUrl = request.getContextPath()+ "/servlet/DisplayChart?filename=" + filename; 
  request.setAttribute("chartUrl", pieUrl);

 

JFreeChartUtil  / barChart3DStyle

 

 

/* 柱状图样式 */
	public static void barChart3DStyle(JFreeChart chart) {
		CategoryPlot plot = chart.getCategoryPlot();
		NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis(); 
		 CategoryAxis domainAxis = plot.getDomainAxis();  
		 /*------设置X轴坐标上的文字-----------*/  
//		 domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  
		 domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 11));
		 /*------设置X轴的标题文字------------*/  
		 domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  

		 /*------设置Y轴坐标上的文字-----------*/  
//		 numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));  
		 numberaxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));  
		 /*------设置Y轴的标题文字------------*/  
		 numberaxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  

		 /*------这句代码解决了底部汉字乱码的问题-----------*/  
		 chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));

		//设置网格背景颜色
		plot.setBackgroundPaint(Color.white);

		//设置网格竖线颜色
		plot.setDomainGridlinePaint(Color.pink);

		//设置网格横线颜色
		plot.setRangeGridlinePaint(Color.pink);

		//显示每个柱的数值,并修改该数值的字体属性
		BarRenderer3D renderer = new BarRenderer3D();

		renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		renderer.setBaseItemLabelsVisible(true);
		//设置 底部分类 不显示
		renderer.setBaseSeriesVisibleInLegend(false);
		//默认的数字显示在柱子中,通过如下两句可调整数字的显示
		//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题

		renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));

		renderer.setItemLabelAnchorOffset(10D);

		renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));

		renderer.setItemLabelsVisible(true);

		//设置每个地区所包含的平行柱的之间距离

		renderer.setItemMargin(0.3);

		plot.setRenderer(renderer);

		//设置地区、销量的显示位置
		//将下方的“年”放到上方
//					plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
		//将默认放在左边的“人数”放到右方
//					plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
	}
 

 

JSP 

<img src="${chartUrl}" mce_src="${chartUrl}" />

 

  

  • 大小: 60.2 KB
分享到:
评论

相关推荐

    JFreeChart画图 饼状图 单组柱状图 多组柱状图 堆积柱状图 折线图

    JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...

    jfreechart 绘制横向立体柱状图

    利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错

    jfreechart 堆栈柱状图跟折线图结合拼接

    jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707

    java+jfreechart+struts 生成柱状图

    java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347

    jfreechart的使用-柱状图

    jFreeChart是Java编程语言中一个广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图等。博主通过具体的代码示例,详细解释了如何利用jFreeChart生成柱状图,这对于数据可视化和报告生成非常...

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

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

    JFreeChart画统计分析柱状图

    下面我们将基于文章中的示例,进一步解释如何使用JFreeChart来绘制柱状图: ```java ;charset=GBK" %&gt; , org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet....

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

    jfreechart实现柱状图排序

    根据提供的信息,我们可以总结出以下关于...综上所述,虽然 JFreeChart 可能没有直接提供柱状图排序的功能,但通过自定义数据处理和图表创建过程,完全可以实现这一需求。这种灵活性也是 JFreeChart 的一大优势所在。

    利用JFreeChart 实现柱状图,饼图,时序图,折线图等

    在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...

    JFreeChart动态加载柱状图

    JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar

    jfreechart绘制的立体柱状图(正负纵坐标)

    利用jfreechart绘制的立体柱状图,可以实现正负纵坐标显示,需要提前下载jfreechart.jar文件,否则我的类会报错,也即是要配置运行环境

    java制作jfreechart柱状图 饼状图 折线图

    Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...

    使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

    JFreeChart是一个强大的Java库,它允许开发者创建各种类型的图表,包括曲线图、柱状图、饼状图和分布图等。在当前JS图表库盛行的时代,JFreeChart依然因其稳定性和丰富的定制性而在Java领域占有一席之地。本文将详细...

    JFreeChart生成3D饼状图及柱状图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...

    JFreeChart 之四:JFreeChartUtil

    在Java编程中,JFreeChart是一个非常受欢迎的库,用于创建各种类型的图表,如折线图、柱状图、饼图等。JFreeChart提供了丰富的功能,使得开发者能够方便地在应用程序中嵌入高质量的图表。在“JFreeChart 之四:...

    JfreeChart柱状图饼图

    在Java编程中,JFreeChart库是一个强大的图表绘制工具,它能够帮助开发者创建出多种类型的图表,包括柱状图、饼图等,广泛应用于数据分析和可视化展示。这篇博文中,我们将深入探讨如何使用JFreeChart来创建柱状图和...

    jfreechart柱状图

    JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。这个压缩包提供的源代码示例,展示了如何使用 JFreeChart ...

Global site tag (gtag.js) - Google Analytics