`

使用JFreeChart工具生成饼状图或柱状 (生成的图片不好看 是很基础的)

阅读更多

一:首先要导入所需要的包:

   jfreechart-1.0.14-experimental.jar、 jfreechart-1.0.14-swt.jar、jfreechart-1.0.14.jar(等等)

二:在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>
 <!-- 报表结束 -->

三:在后台编写生成饼状图或者柱状图的代码

 1、饼状图:

  DefaultPieDataset dataset=new DefaultPieDataset();//填充饼状图的数据 集合
 ConnectionProvider cp=((SessionFactoryImplementor)this.lgispEquipmentService.getEntityDao().getHibernateTemplate().getSessionFactory()).getConnectionProvider();
    try{

 

//sql 语句

 String pointSql=" select count(*) as count,point.point_type from lgisp_point as point , lgisp_equipment as equip, lgisp_terminal as ter  where point.equipment_id=equip.EQUIPMENT_ID and equip.terminal_id=ter.terminal_id group by point.point_type";

 


     Statement smt=cp.getConnection().createStatement();


     ResultSet rs=smt.executeQuery(pointSql);//查询获得结果集


     double equipCount=0;//设备总数目
     HashMap hashMap=new HashMap();


     while(rs.next()){
      double count=Double.parseDouble(rs.getString(1));
      int type=Integer.parseInt(rs.getString(2));
      equipCount+=count;
      hashMap.put(type, count);
     }
     List<TerManuFacturer> equipManuList=(List<TerManuFacturer>) request.getSession().getAttribute("pointManuList");
     for(TerManuFacturer equip:equipManuList){
      double rate=Double.parseDouble((hashMap.get(equip.getId())).toString())/ equipCount;
            dataset.setValue(equip.getManuName(), rate);
     }// 以上的代码是为生成图的dataset 准备数据


     //通过工厂类生成JFreeChart对象
     JFreeChart chart=ChartFactory.createPieChart("设备——厂家分配图", dataset, true, false, false);
     PiePlot piePlot=(PiePlot)chart.getPlot();
     //防止乱码,多标题重新设备字体(乱码问题借鉴http://chengyue2007.iteye.com/blog/424954 得到解决)
     TextTitle textTitle=chart.getTitle();
     textTitle.setFont(new Font("黑体",Font.PLAIN,20));
     piePlot.setLabelFont(new Font("宋体",0,12));
     
     //没有数据时显示的内容
     piePlot.setNoDataMessage("无数据显示");
     piePlot.setCircular(false);
     piePlot.setLabelGap(0.02D);
     OutputStream ostream=response.getOutputStream();
     ChartUtilities.writeChartAsJPEG(ostream, chart,500, 500);
     ostream.flush();
     ostream.close();

    return "输出图的页面";

2、柱状图

 

  DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
 ConnectionProvider cp =((SessionFactoryImplementor)this.reportService.getEntityDao().getHibernateTemplate().getSessionFactory()).getConnectionProvider();
  try{
   Statement smt = cp.getConnection().createStatement();
   ResultSet rs = smt.executeQuery("sql 语句);
   while(rs.next()){    
    dataset.addValue(Double.parseDouble(rs.getString(1)),rs.getString(2), "") ;
   }
     JFreeChart chart = ChartFactory.createBarChart3D(
             "图标测试", // 图表标题
             "班级", // 目录轴的显示标签
             "分数", // 数值轴的显示标签
             dataset, // 数据集
             PlotOrientation.VERTICAL, // 图表方向:水平、垂直
             true, // 是否显示图例(对于简单的柱状图必须是false)
             false, // 是否生成工具
             false // 是否生成URL链接
             );
   
     OutputStream ostream = response.getOutputStream();
     //设定图片的宽为400,高为300,并输出至ostream     
     ChartUtilities.writeChartAsJPEG(ostream, chart, 800, 600);
     ostream.flush();
     ostream.close();

return"输出图的页面;

 

这样既可完成,这是最基本的,未作进一步的改进。

 

 

 

 

分享到:
评论

相关推荐

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

    在这个特定的场景中,我们将关注如何使用JFreeChart生成3D饼状图和柱状图,并将这些图像保存到指定的文件目录下。 首先,我们需要了解JFreeChart的基本用法。JFreeChart的核心是`ChartFactory`类,它提供了静态方法...

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

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

    flex +jfreechart生成 饼状图+曲线图+柱状图(完整版)

    在“flex jfreechart生成 饼状图”的场景下,我们首先需要在Java端使用JFreeChart库创建饼状图,然后将其转换为图像格式(如JPEG或PNG)。接着,Flex应用通过HTTP服务请求这个图像,并在前端以Image组件展示。这通常...

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

    1. **数据准备**:数据是图表的基础,通常需要将数据转化为JFreeChart可理解的数据结构,如`XYSeries`(折线图)、`PieSection`(饼图)或`CategoryDataset`(柱状图)。 2. **图表工厂**:通过`ChartFactory`类...

    jfreeChart生成的线状图,饼状图,柱状图

    在JFreeChart中,`PieChartDemo1`是生成饼状图的一个典型例子。饼状图适合用于展示各个分类在整体中的占比,例如市场占有率、人口构成等。你可以改变扇区颜色,添加标签,甚至为每个扇区添加工具提示和URL链接。 ``...

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

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

    利用jFreeChart做曲线图、饼状图、柱状图

    jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...

    jfreechart使用SqlServer2000做的饼状图,柱状图,折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼状图、柱状图和折线图等。在本项目中,开发者利用JFreeChart与SQL Server 2000数据库结合,实现了从数据库获取数据并生成可视化的图表。...

    利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示

    “利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示”这个标题表明我们将探讨如何使用JFreeChart库来创建各种类型的图表,如饼状图和柱状图,并且这些图表能够在JavaServer Pages (JSP) 中展示。...

    java 实现饼状图、柱状图、折线图

    在Java编程语言中,生成数据可视化图形,如饼状图、柱状图和折线图,是数据分析和展示的关键步骤。这些图表可以帮助我们直观地理解数据分布和趋势。本篇文章将详细探讨如何使用Java实现这三种图表。 首先,饼状图...

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

    《使用JFreeChart生成曲线、柱状图、饼状图、分布图展示到JSP》 JFreeChart是一个强大的Java库,它允许开发者创建各种类型的图表,包括曲线图、柱状图、饼状图和分布图等。在当前JS图表库盛行的时代,JFreeChart...

    Struts2+JFreeChart+饼状图,柱状图,折线图

    在Struts2框架中集成JFreeChart库,可以方便地创建各种图表,如饼状图、柱状图和折线图,为数据分析和可视化提供便利。 JFreeChart是一个开源的Java类库,用于生成高质量的统计和财务图表。它支持多种图表类型,...

    jfreechart 折线图、饼状图、柱状图

    本项目提供了一个实例,展示了如何在Web页面上使用JFreeChart生成和显示这些图表。 首先,我们来详细了解一下JFreeChart库。JFreeChart是由David Gilbert开发的一个开源项目,它支持生成各种复杂的2D图表,如折线图...

    jfreechart应用_经典例题_生成饼状图、生成单组柱状图、生成多组柱状图、生成堆积柱状图

    JFreeChart 是一个开源的 Java 图形库,用于生成高质量的二维图表,如饼状图、柱状图、线图等。它广泛应用于数据分析、报表和可视化应用中。本篇文章将详细讲解如何利用 JFreeChart 创建不同的图表类型,包括饼状图...

    java实现图表,饼状图,柱状图,折线图,

    java实现的 生成饼状图 生成单组柱状图 生成多组柱状图 生成堆积柱状图 生成折线图 里面包括了所需要的 jcommon-1.0.12.jar jfreechart-1.0.8a.jar

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

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

    jfreechart饼状图

    例如,在上面的示例代码中,我们使用了DefaultPieDataset类、PiePlot类和JFreeChart类来生成饼状图。 在生成饼状图时,还需要使用ServletUtilities类来保存图表到文件中。ServletUtilities类是jfreechart库中的一个...

    JFreeChart入门_-_使用JFreeChart开发Pie(饼状图)

    JFreeChart 是一个开源的 Java 图形库,用于生成高质量的图表,包括饼状图、柱状图、线形图等多种类型。在本教程中,我们将深入探讨如何使用 JFreeChart 创建饼状图(Pie Chart),这是一个常用于展示数据部分比例的...

    图形报表生成饼状图,折线图,柱状图

    在标题和描述中提到的“图形报表生成饼状图,折线图,柱状图”,这些都是数据分析和展示的常用图表类型,广泛应用于各种业务场景。接下来,我们将深入探讨这些图形报表的生成原理、应用场景以及如何在MyEclipse环境...

Global site tag (gtag.js) - Google Analytics