`
newleague
  • 浏览: 1504922 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

JFreeChart 应用全过程

阅读更多

一、新建一个web项目

二、在web.xml中配置servlet

    <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>

三、新建一个ChartDemo类,写一个获得数据集方法

1、饼状图数据集

    private static PieDataset getDataSet() {

        DefaultPieDataset dataset = new DefaultPieDataset();

        dataset.setValue("苹果", 100);

        dataset.setValue("梨子", 200);

        dataset.setValue("葡萄", 300);

        dataset.setValue("香蕉", 400);

        dataset.setValue("荔枝", 500);

        return dataset;

   }

2、柱壮图数据集

   private static CategoryDataset getDataSet2() {

        DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        dataset.addValue(100, "北京", "苹果");

        dataset.addValue(500, "北京", "荔枝");

        dataset.addValue(400, "北京", "香蕉");

        dataset.addValue(200, "北京", "梨子");

        dataset.addValue(300, "北京", "葡萄");

        dataset.addValue(500, "上海", "葡萄");

        dataset.addValue(600, "上海", "梨子");

        dataset.addValue(400, "上海", "香蕉");

        dataset.addValue(700, "上海", "苹果");

        dataset.addValue(300, "上海", "荔枝");

        dataset.addValue(300, "广州", "苹果");

        dataset.addValue(200, "广州", "梨子");

        dataset.addValue(500, "广州", "香蕉");

        dataset.addValue(400, "广州", "葡萄");

        dataset.addValue(700, "广州", "荔枝");

        return dataset;

   }

3、折线图数据集

private static CategoryDataset getDataSet2() {

        DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        dataset.addValue(100, "北京", "苹果");

        dataset.addValue(500, "北京", "荔枝");

        dataset.addValue(400, "北京", "香蕉");

        dataset.addValue(200, "北京", "梨子");

        dataset.addValue(300, "北京", "葡萄");

        dataset.addValue(500, "上海", "葡萄");

        dataset.addValue(600, "上海", "梨子");

        dataset.addValue(400, "上海", "香蕉");

        dataset.addValue(700, "上海", "苹果");

        dataset.addValue(300, "上海", "荔枝");

        dataset.addValue(300, "广州", "苹果");

        dataset.addValue(200, "广州", "梨子");

        dataset.addValue(500, "广州", "香蕉");

        dataset.addValue(400, "广州", "葡萄");

        dataset.addValue(700, "广州", "荔枝");

        return dataset;

   }

四、写一个主方法用来构造要显示的图形

1、饼状图

   public static String generatePieChart(HttpSession session, PrintWriter pw,

int w, int h){

        String filename = null;

        PieDataset dataset = getDataSet();

        JFreeChart chart = ChartFactory.createPieChart3D(

                "水果产量图", // 图表标题

                dataset, // 数据集

                true,   // 是否显示图例

                false, // 是否生成工具

                false // 是否生成URL链接

        );

        chart.setBackgroundPaint(Color.pink);

        try {

            /*------得到chart的保存路径----*/  

ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

             filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);

            /*------使用printWriter将文件写出----*/

            ChartUtilities.writeImageMap(pw, filename, info, true);

            pw.flush();

        } catch (IOException e) {

            e.printStackTrace();

        } 

        return filename;

   }

2、柱状图

public static String generateBarChart(HttpSession session, PrintWriter pw,

int w, int h){

        String filename = null;

        CategoryDataset dataset = getDataSet2();

        JFreeChart chart = ChartFactory.createBarChart3D(

                "水果产量图", // 图表标题

                "水果", // 目录轴的显示标签

                "产量", // 数值轴的显示标签

                dataset, // 数据集

                PlotOrientation.VERTICAL, // 图表方向:水平、垂直

                true,   // 是否显示图例(对于简单的柱状图必须是false)

                false, // 是否生成工具

                false // 是否生成URL链接

        );

        try {

            /*------得到chart的保存路径----*/  

            ChartRenderingInfo info = new ChartRenderingInfo

(new StandardEntityCollection());

            filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);

            /*------使用printWriter将文件写出----*/

            ChartUtilities.writeImageMap(pw, filename, info, true);

            pw.flush();

        } catch (IOException e) {

            // TODO 自动生成 catch 块

            e.printStackTrace();

        } 

        return filename;

   }

3、折线图

public static String generateLineChart(HttpSession session, PrintWriter pw,

int w, int h){

        String filename = null;

        CategoryDataset dataset = getDataSet2();

        JFreeChart chart = ChartFactory.createLineChart(

                "水果产量图", // 图表标题

                "水果", // 目录轴的显示标签

                "产量", // 数值轴的显示标签

                dataset, // 数据集

                PlotOrientation.VERTICAL, // 图表方向:水平、垂直

                true,   // 是否显示图例(对于简单的柱状图必须是false)

                false, // 是否生成工具

                false // 是否生成URL链接

        );

        /*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/

        chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,

                RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

        /*------------配置图表属性--------------*/

        // 1,设置整个图表背景颜色

        chart.setBackgroundPaint(Color.pink);

        /*------------设定Plot参数-------------*/

        CategoryPlot plot = chart.getCategoryPlot();

        // 2,设置详细图表的显示细节部分的背景颜色

        //plot.setBackgroundPaint(Color.PINK);

        // 3,设置垂直网格线颜色

        plot.setDomainGridlinePaint(Color.black);

        //4,设置是否显示垂直网格线

        plot.setDomainGridlinesVisible(true);

        //5,设置水平网格线颜色

        plot.setRangeGridlinePaint(Color.blue);

        //6,设置是否显示水平网格线

        plot.setRangeGridlinesVisible(true);

        try {

            /*------得到chart的保存路径----*/  

ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

            filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);

            /*------使用printWriter将文件写出----*/

            ChartUtilities.writeImageMap(pw, filename, info, true);

            pw.flush();

        } catch (IOException e) {

            // TODO 自动生成 catch 块

            e.printStackTrace();

        } 

        return filename;

   }

五、写一个调用JfreeChart的显示页面

     <%@ page contentType="text/html;charset=GBK"%>

<%@ page import="java.io.PrintWriter"%>

<jsp:directive.page import="com.cn.ChartDemo"/>

<html>

<head>

<title>

</title>

<%

//以下部分为折线图象输出(调用不同的方法生成不同类型的图形)

String fileName=ChartDemo.generateLineChart(session,new PrintWriter(out),580,250);

String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;

%>

</head>

<body bgcolor="#ffffff">

<table width="580" border="0" cellspacing="0" cellpadding="0">

<tr>

     <td>

      <img src="<%= graphURL %>"width=580 height=250 border=0 >

     </td>

     </tr>

</table>

</body>

</html>

六、将项目发布到web服务器,启动web服务器。打开JfreeChart的显示页面就可以看效果了。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/TechChan/archive/2009/02/04/3862100.aspx

分享到:
评论

相关推荐

    JFreeChart开发全攻略

    《JFreeChart开发全攻略》是一本专注于Java图表库JFreeChart的实战指南,它旨在帮助开发者深入理解和熟练运用这个强大的工具。JFreeChart是一个开源的Java类库,用于生成高质量的图表,包括饼图、柱状图、线图、散点...

    jfreechart比较全的例子(eclipse项目)

    《JFreeChart实战:全方位解析与应用》 JFreeChart是一款强大的开源Java图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图、甘特图、时间序列图等,适用于各种数据分析和可视化需求。在本项目中,...

    java图形工具 jfreechart全套图形工具及文档源码一网打尽

    在Java编程中,JFreeChart允许开发者通过简单的API调用来生成复杂的图表,这极大地简化了图形编程的过程。其主要特点包括: 1. **图形种类多样**:JFreeChart支持多种图表类型,如线形图、柱状图、饼图、面积图、...

    jfreechart最全的帮助文档.rar

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如柱状图、饼图、线图、散点图、甘特图等,适用于报表、数据分析、可视化应用等多个场景。本压缩包“jfreechart最全的帮助文档.rar”包含...

    jfreechart教程

    JFreeChart 是一个开源的Java库,用于生成高质量的图表,...教程中的JFreeChart Jar包、源码示例和中文文档为学习过程提供了全方位的支持。无论是初学者还是经验丰富的开发者,都可以从中获益,提升数据可视化的能力。

    JfreeChart 示例

    这个示例资源提供了JFreeChart的实践应用,帮助开发者了解如何在Java程序中创建和展示各种图表。 在运行JfreeChart示例之前,我们需要准备以下依赖库: 1. **jcommon-1.0.9.jar**:这是JFreeChart的一个基础库,...

    JFreeChart文档、jar包、教程

    JFreeChart是一款强大的Java图表库,它为开发者提供了一种简单的方法来创建各种类型的图表,如饼图、柱状图、线图、散点图、甘特图等,适用于数据分析、报表生成以及可视化应用的开发。这个压缩包包含了JFreeChart的...

    JFreeChart_GUI_Demo

    **JFreeChart GUI Demo** **概述** `JFreeChart` 是一个开源的Java库,用于创建高质量的图表,包括柱状图、...这些示例代码涵盖了从数据准备、图表创建到界面集成的全过程,对于提升Java数据可视化能力具有很大帮助。

    jfreechart-1.0.19-javadoc.zip

    JFreeChart广泛应用于数据分析报告、Web应用程序、桌面应用程序等,例如在Java Swing或JavaFX中创建图形用户界面,或者在服务器端生成图表以发送到Web客户端。 8. **最佳实践** 使用JFreeChart时,建议先通过...

    jfreechart所需的所有包

    描述中的“非常齐全”提示我们,这个压缩包包含的不仅有JFreeChart的基本库,还可能包括了所有必要的扩展和附加组件,确保开发者在使用过程中不会因为缺少依赖而遇到问题。这可能是为了方便开发者快速集成到他们的...

    jfreechart折线图demo

    总的来说,这个“jfreechart折线图demo”涵盖了从数据准备、图表创建到前端展示的全过程,对于理解 JFreeChart 以及它如何与 HTML/CSS/JQuery 集成非常有帮助。通过实践这个 demo,开发者可以快速掌握数据可视化的...

    jfreechart帮助文档 最新最全的 最新的版jfreechart帮助文档 最新最全的 最新的版本

    本文档旨在提供最新版本的JFreeChart帮助文档,并详细阐述其安装过程及如何利用该库创建不同类型的图表。 #### 二、下载与安装 1. **下载地址**:可以从以下网址下载JFreeChart:...

    JFreeChart参考Demo和技术文档以及相关问题的处理和乱码问题

    本篇将深入探讨JFreeChart的参考Demo、技术文档,以及如何解决在使用过程中可能遇到的乱码问题。 首先,**JFreeChart参考Demo**是学习和理解JFreeChart功能的绝佳资源。Demo中包含了各种类型的图表示例,展示了如何...

    jfreechart_all

    《JFreeChart全方位解析》 JFreeChart,作为一款强大的Java图表库,为开发者提供了丰富的图形绘制功能,广泛应用于数据分析、报表制作以及各种GUI应用中。这个名为“jfreechart_all”的压缩包,包含了JFreeChart的...

    Java Web开发实例大全(基础卷) 完整pdf扫描版[179MB]

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    每个案例都详细讲解了项目的开发流程,以及代码的详细注释,有助于读者理解并掌握实际开发过程中遇到的问题和解决方案。 综上所述,本书不仅是对J2EE核心技术的一个全面介绍,也是一本实践操作指南,适合初、中、...

    Java Web开发实例大全

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    java实现各种数据统计图(柱形图,饼图,折线图).zip

    这些例子通常会涵盖数据准备、图表创建和显示的全过程,对于初学者来说是非常有价值的参考资料。通过阅读和运行这些示例,你可以快速掌握JFreeChart的使用,并将其应用到自己的项目中。 总的来说,JFreeChart为Java...

    swt动态图表相关jar包

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的基础。...总的来说,这些库提供了一个完整的解决方案,覆盖了从数据处理、图表渲染到输出的全过程。

    swing应用_cad绘图

    Swing是Java编程语言中的一个...在提供的文件名中,"安装.bat"可能是用于自动化安装过程的批处理文件,而"JAVACAD"可能是CAD绘图应用的主要程序文件或相关库。具体的功能和用法需要查看源代码或运行程序来进一步了解。

Global site tag (gtag.js) - Google Analytics