JFreeChart技术总结(一)

来源:互联网 发布:怎样找淘宝客 编辑:程序博客网 时间:2024/05/01 15:12
 
一、简介
JFreeChart也许对大家来说很陌生,它是一款开源的、功能强大的统计图生成工具,可以直接生成PNG、JPG等各式的文件为我们java项目的开发增加了一部利器。
它实现了动态数据图形的完美结合,它是纯java的一个开发包,jfreechart不仅能够实现饼图,柱状图,堆栈拄状图,线图等常规图形,而且能实现阶梯图,面积图,散列图,蜡烛图形,各种组合图,多坐标图等多种复杂图形,JFreeChart的源码结构很清晰,下载它的doc文档可以很好的看清楚它的类结构,它完全实现了一个抽象的图形对象的具体化。
       为了创建一个可以在web浏览器上查看到图表一般有两种做法:第一种就是使用applet利用java本身对图形的支持来显示一个图表;第二种就是直接在web服务器端生成好图表图片文件后发送给浏览器。
    第一种方式显然对于客户端要求太高,随着现在主流浏览器放弃对JAVA的支持后,这种方式只适合一些局域网的应用,而对于因特网的环境就显得不太适合。而我在前一个项目中所用到的正是第一种做法,主要用动态数据加载JFreeChart生成折线图及柱状图,放到applet中在页面中展示。
二、配置
       在JFreeChart官方站点http://www.jfree.org/jfreechart/index.html可以下载最新版的jar包、源代码、示例及API。现在最新版本为1.0.4,我们就以这个版本例子做以说明。
JFreeChart的主要jar包有:jfreechart-1.0.4.jar(Java图形解决方案可应用于Application/Applet/Servlet/Jsp),jcommon-1.0.8.jar(JFreeChart的公共类库),gnujaxp.jar(这个jar包应该没什么太大的用处,因为没有它jfreechart也能正常运行)。jfreechart-1.0.4-demo.jar这个jar包里主要是它的示例,用javaw方式打开这个jar包就能运行它,就可以看到jfreechart1.0.4的示例界面,虽然JFreeChart本身是开源的,但它的示例可不是开源的。
从官方站点下的jfreechart-1.0.4.zip后,将其解压缩到本地,lib文件夹下放的是jar包,source文件夹下放的是源代码,且根目录下就能够看到jfreechart-1.0.4-demo.jar。
如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%/LIB中,同时在环境变量CLASSPATH中加入。
如果是WEB开发,以TOMCAT中的一个WEB项目test为例子说明:
把上述三个文件拷贝到test/WEB-INF/lib中,然后修改test/WEB-INF/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>
我所在的前一个项目中用到的是applet的应用,所以不用配置这么麻烦,因为applet只支持jar包的形式,所以只要把我们的源代码打成jar包连同用到的JFreeChart的jar包一起放到WEB工程的lib文件夹下就可以了。
三、JFreeChart功能介绍
JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:
pie charts (2D and 3D)   饼图(平面和立体)
bar charts (regular and stacked, with an optional 3D effect)   柱状图
line and area charts   曲线图
scatter plots and bubble charts
time series, high/low/open/close charts and candle stick charts   时序图
combination charts   复合图
pareto charts
gantt charts   甘特图
wind plots, meter charts and symbol charts
wafer map charts   态图表,饼图(二维和三维),柱状图(水平、垂直),线图,点图,时间变化图,甘特图,股票行情图,混和图,温度计图,刻度图等常用商用图表
图形可以导出成PNG和JPEG格式,同时还可以与PDF和EXCEL关联。
JFreeChart核心类库介绍:
研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart及org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。
核心类主要有:
类名
类的作用以及简单描述
JFreeChart
图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
XXXXXDataset
数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
XXXXXPlot
图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
XXXXXAxis
用于处理图表的两个轴:纵轴和横轴
XXXXXRenderer
负责如何显示一个图表对象
XXXXXURLGenerator
用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator
用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
 
原创粉丝点击