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

JFreeChart实例详解

阅读更多
JFreeChart,开放源码的Java图表生成组件(基于LGPLLicence),可以创建饼图、曲线图、柱状图、甘特图,生成PNG,JPG等图片格式文件。当前最新版本为0.9.11,下面就是一张JFreeChart生成的统计图。本文讲解如何在Web利用JFreeChart生成饼状统计图。

一、安装配置

当前最新版本为0.9.11

下载jfreechart-0 .9.11.zip

下载jfreechar t-0.9.11.tar.gz

解压缩文件,jfreechart-0.9.11目录下的jfreechart-0.9.11.jar和 lib/jcommon-0.8.6.jar,lib/gnujaxp.jar都是开发运行需要的文件,把这三个文件放置到应用的lib目录下。

然后在web.xml文件中增加以下内容:

<ccid></ccid>
<ccid></ccid><servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.
servlet.DisplayChart</servlet-class>
</servlet>



安装配置完成,现在可以写程序生成我们需要的统计图了。

二、开始,在JSP中生成饼型统计图

<ccid></ccid>
<ccid></ccid><%@ page contentType=
"text/html;charset=GBK"%>
<%@ page import=
"org.jfree.data.DefaultPieDataset"%>
<%@ page import=
"org.jfree.chart.JFreeChart"%>
<%@ page import=
"org.jfree.chart.plot.PiePlot"%>
<%@ page import=
"org.jfree.chart.
ChartRenderingInfo"%>
<%@ page import=
"org.jfree.chart.servlet.
ServletUtilities"%>
<%@ page import=
"org.jfree.chart.urls.
StandardPieURLGenerator"%>
<%@ page import=
"org.jfree.chart.entity.
StandardEntityCollection"%>
<%

DefaultPieDataset data
= new DefaultPieDataset();
data.setValue("六月",500);
data.setValue("七月",580);
data.setValue("八月",828);

PiePlot plot = new PiePlot(data);

JFreeChart chart = new JFreeChart
("",JFreeChart.DEFAULT_TITLE_FONT,
plot, true);
chart.setBackgroundPaint
(java.awt.Color.white);
//可选,设置图片背景色
chart.setTitle
("www.SenTom.net 网站访问统计表");
//可选,设置图片标题
ChartRenderingInfo info
= new ChartRenderingInfo
(new StandardEntityCollection());
//500是图片长度,300是图片高度
String filename =
ServletUtilities.saveChartAsPNG
(chart, 500, 300, info, session);
String graphURL =
request.getContextPath() +
"/servlet/DisplayChart?filename="
+ filename;
%>
<HTML>
<HEAD>
<TITLE>www.sentom.net</TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">
<ccid_file values="<%=" graphURL % />"
width=500 height=300 border=0
usemap="#<%= filename
%>">
</P>
</BODY>
</HTML>



就这么简单,生成的饼状图如下


三、JSP+JAVABEAN生成饼状统计图

<ccid></ccid>
<ccid></ccid>WebChart.java 

/*
* Created on 2003-9-9
* http://www.sentom.net
* To change the template
for this generated file go to
* Window>Preferences>Java>Code
Generation>Code and Comments
*/
package net.sentom.chart;

import java.awt.Insets;
import java.awt.Font;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import org.jfree.chart.labels.
StandardPieToolTipGenerator;

/**
* @author sentom
*
* To change the template for
this generated type comment go to
* Window>Preferences>Java>Code
Generation>Code and Comments
*/
public class WebChart
{
private DefaultPieDataset data =
new DefaultPieDataset();

public void setValue
(String key,double value)
{
data.setValue(key,value);
}

public String generatePieChart
(String title, HttpSession session,
PrintWriter pw)
{
String filename = null;
try
{
//创建chart对象
PiePlot plot =
new PiePlot(data);
plot.setInsets
(new Insets(0, 5, 5, 5));
//在统计图片上建连结
plot.setURLGenerator
(new StandardPieURLGenerator
("link.jsp","section"));
plot.setToolTipGenerator
(new StandardPieToolTipGenerator());
JFreeChart chart = new JFreeChart
("", JFreeChart.DEFAULT_TITLE_FONT,
plot, true);
chart.setBackgroundPaint
(java.awt.Color.white);
//设置图片的背景色
Font font = new Font
("黑体",Font.CENTER_BASELINE,20);
//设置图片标题的字体和大小
TextTitle _title =
new TextTitle(title);
_title.setFont(font);
chart.setTitle(_title);
//把生成的图片放到临时目录
ChartRenderingInfo info =
new ChartRenderingInfo(new
StandardEntityCollection());
//500是图片长度,
300是图片高度
filename = ServletUtilities.
saveChartAsPNG
(chart, 500, 300, info,
session);
ChartUtilities.writeImageMap
(pw, filename, info);
pw.flush();
} catch (Exception e)
{
System.out.println
("Exception - " + e.toString());
e.printStackTrace
(System.out);
filename =
"public_error_500x300.png";
}
return filename;
}
}



JSP文件

<ccid></ccid>
<ccid></ccid><%@ page contentType=
"text/html;charset=GBK"%>
<%@ page import =
"java.io.PrintWriter" %>
<%@ page import=
"net.sentom.chart.WebChart"%>
<%

WebChart chart = new WebChart();
chart.setValue("六月",500);
chart.setValue("七月",580);
chart.setValue("八月",828);

String filename =
chart.generatePieChart
("www.SenTom.net 网站访问统计表",
session, new

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

%>
<HTML>
<HEAD>
<TITLE>www.sentom.net</TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">
<ccid_file values="<%=" graphURL % />
" width=500 height=300
border=0 usemap="#<%=

filename %>">
</P>
</BODY>
</HTML>



生成的饼状图如下

四 参考资源

http://sourceforge.net/projects/jfreechart

http://www.jfree.org/jfreechart/index.html

http://www.jfree.org/phpBB2/viewforum.php?f=3


 
分享到:
评论

相关推荐

    JFreeChart实例

    **JFreeChart 实例详解** JFreeChart 是一个强大的开源Java图表库,它提供了一种简单的方法来创建高质量的图表,包括线图、柱状图、饼图、散点图等,广泛应用于Java应用程序和Web应用中。在这个实例中,我们将深入...

    jfreechart 实例

    **JFreeChart 实例详解** JFreeChart 是一个强大的开源Java库,用于生成高质量的图表。这个库广泛应用于各种项目,包括数据可视化、报表生成、应用程序界面和网页设计。在本篇文章中,我们将深入探讨JFreeChart的...

    jFreeChart实例教程

    **三、jFreeChart实例详解** 在"jFreeChart"压缩包中,包含了各种实例代码,这些实例可以帮助开发者快速掌握jFreeChart的使用方法。下面是一些常见的图表实例: 1. **柱状图**:柱状图用于比较不同类别的数据,...

    jfreechart实例

    **JFreeChart 实例详解** JFreeChart 是一个流行的开源Java库,用于生成高质量的图表。这个库广泛应用于各种Java应用程序,包括桌面应用、Web应用和服务器端应用,以提供数据可视化的功能。JFreeChart 支持多种图表...

    JFreeChart 实例

    **JFreeChart 实例详解** JFreeChart 是一个流行的开源Java库,用于生成高质量的图表。这个库提供了各种图表类型,如柱状图、饼图、线形图、散点图、甘特图等,广泛应用于数据分析、报表生成以及Web应用中。在本...

    jfreechart实例教程+笔记+流程图

    **JFreeChart 实例教程与应用详解** JFreeChart 是一个功能强大的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图、甘特图等。这个教程将帮助你深入理解和使用 ...

    JfreeChart 应用详解 例子

    **JFreeChart 应用详解 例子** JFreeChart 是一个功能强大的开源 Java 图形库,它为开发者提供了丰富的图表绘制能力,包括折线图、柱状图、饼图、散点图、甘特图等多种类型。这个中文教程将帮助初学者快速掌握 ...

    JfreeChar实例

    **JFreeChart 实例详解** JFreeChart 是一个流行的开源Java库,用于生成高质量的图表。这个实例将帮助我们深入理解如何使用JFreeChart来创建柱状图、线性图和饼状图,这些是数据可视化中最常用的图表类型。通过在...

    JFreeChat实例

    **JFreeChart 实例详解** JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图、甘特图等,用于创建高质量的静态和动态图表。这个实例将深入探讨如何使用 JFreeChart ...

    JFreeChart实例+包+中文API

    **JFreeChart详解** JFreeChart是一款开源的Java图表库,它为Java应用程序提供了丰富的图形绘制功能,包括柱状图、饼图、线形图、散点图、面积图等多种图表类型。这款库广泛应用于数据分析、报表生成以及可视化界面...

    JFreeChart实例代码

    **JFreeChart 实例代码详解** JFreeChart 是一个开源的 Java 图表库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图等,广泛应用于数据可视化领域。这个压缩包中的实例代码展示了如何使用 JFreeChart 创建...

    JFreeChart 帮助文档 api 实例说明

    **JFreeChart API 实例详解** JFreeChart 是一个开源的Java库,它提供了一组丰富的图表组件,用于创建各种类型的统计图表,如饼图、柱状图、折线图、散点图以及时间序列图等。这个API使得开发者能够在Java应用程序...

    Hibernate +  RCP + MySQL+ Jfreechart 开发实例 

    《Hibernate + RCP + MySQL + JFreeChart 开发实例详解》 在当今的软件开发领域,集成多种技术来创建高效、功能丰富的应用已经成为常态。本实例将深入探讨如何结合Hibernate对象关系映射框架、RCP(Rich Client ...

    JFreeChart所有图表的实例代码

    **JFreeChart 全面解析:图表实例代码详解** JFreeChart 是一个广泛使用的 Java 图形库,它允许开发者创建各种高质量的图表,包括折线图、柱状图、饼图、散点图等。在Java应用中,尤其是在数据可视化方面,...

    JFreechart代码实例

    **JFreeChart 代码实例详解** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图等,用于数据可视化。这个代码实例集旨在帮助初学者更好地理解和使用 JFreeChart 库。...

    JFreeChart web报表开发实例

    **三、实例详解** 在"JFreeChart开发全攻略"中,可能包含了以下内容: 1. **环境搭建**:讲解如何在项目中引入JFreeChart库,以及可能需要的其他依赖,如Servlet API等。 2. **创建图表**:介绍如何使用JFreeChart ...

Global site tag (gtag.js) - Google Analytics