使用原始的JFreeChart

发表时间:2017-05-16 15:53:15 浏览量( 20 ) 留言数( 0 )

学习目标:

1、了解JFreeChart


学习过程:

一、jfreechart简介

在ERP系统中经常需要做数据统计或者分析,为了使统计数据更加醒目和专业,一般我们会配合使用统计图,统计图有很多类型,比如柱状图、饼图、散点图、时序图、甘特图等等,如下面这些统计图

attcontent/13735309-052f-4012-b4f8-b60327fbd6f2.png

那么我们怎么样可以根据统计出来的数据自动的生成相关的统计图呢?

在学习验证码那课程时候,我们知道java是可以控制图片,我们相信完全可以使用java动态的生成不同的统计图,只是其代码实现可能会很复杂,而且我们还要生成很多类型的统计图,那么怎么办呢?java已经提供了这样一个非常好用的框架,只需要你传入相关的数据,那么他就会动态的生成这张图片,而且能够很高的支持web的开发,完全使用java实现,不需要任何其他的技术就可以生成很多专业的统计图,这个框架就是JFreeChart了。

JFreeChart是JAVA平台上的一个开源的免费的图表绘制类库,使开发人员很容易就可以制作专业统计图表展示在他们的应用程序,

JFreeChart是一个设计灵活,容易扩展,易于使用的框架,可以动态生成统计图表,且支持多种输出图像类型文件(包括PNG和JPEG)和矢量图形文件格式(包括PDF、EPS和SVG)。

二、使用JFreeChart

1、导包

最好在网上下载1.0之前的版本,因为后面的版本有些对中文支持不好,而且JFreeChart的文档是收费的,解压缩后,将jfreechart-1.0.9.jar、jcommon-1.0.12.jar导入到应用中,就可以进行相关的开发。官方提供了demo。

2、修改web.xml

添加jfreechart的实现的核心servlet。servlet的访问路径是/servlet/DisplayChart,代码如下:

<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、设计一个简单的统计图

修改index.jsp,使用jfreechart生成统计图真的非常简单,只需要根据需要构造不同的统计图对象,然后传入输入值,就可以生成了。示例如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="org.jfree.data.general.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"%>
<%
//1、设置数据源
DefaultPieDataset data=new DefaultPieDataset();
data.setValue("六月",45);
data.setValue("七月",580);
data.setValue("八月",828);
PiePlot plot = new PiePlot(data);

//2、数据源 放到指定的统计图  , 定义统计图
JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色
chart.setTitle("网站访问统计表");//可选,设置图片标题
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
//500是图片长度,300是图片高度

//生成图片
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
System.out.println(filename);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<HTML>
<HEAD>
<TITLE>www.sentom.net</TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">

<img src="<%= graphURL %>" width=500 height=300 /> 
</P>

</BODY>
</HTML>