JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。当在项目中客户需要图标分析时,JFreeChart便是最好的选择,JFreeChart是开源项目,可以方便的从其官方网站上获得其源代码,可以方便的与Swing相结合使用,还可以导入到Web页面中,更是可以方便的利用其工厂方法将图表写入jpeg或者png格式的图片中,本文档将简要介绍小JFreeChart的使用。
JFreeChart 是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如下:
1.JFreeReport :报表解决工具
2.JFreeChart:Java 图形解决方案(Application/Applet/Servlet/Jsp)
3.JCommon :JFreeReport和JFreeChart的公共类库
4.JFreeDesigner :JFreeReport的报表设计工具
我们可以从jfree官方网站上获取最新版本和相关资料(但是jfree的document需要40美金才能获取),
获取地址:http://www.jfree.org/jfreechart/index.html(同时可以获得简明介绍)
我们以当前最新版本:jfreechart-1.0.12.zip为例子进行说明。
1、解压jfreechart-1.0.12.zip到指定位置,其中source是jfreechart的源码,jfreechart-1.0.12-demo.jar 是例子程序。
2、为了配置成功,我们需要关注的文件有如下三个:jfreechart-1.0.12.jar、lib\jcommon-1.0.15.jar、lib\gnujaxp.jar。
JCommon-1.0.15.jar是一组有用的classes集合. 这个类库包含了以下功能: * 文本工具类(text utilities), * 用来显示关于应用程序信息的用户界面类, * 布局定制管理器, * 一个日期选择面板, * 序列化工具类, * XML解析器支持类。
3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入。
在开发中,还有在工程中导入jfreechart-1.0.12.jar,jcommon-1.0.15.jar,否则会在文件第一行提示有错误。
如果是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>
至此jfreechart的配置就完成了,下面就可以进行jfreechart的开发了。这里值得提出的是jfreechart的类结构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一样,有时候可能需要查源码。
JFreeChart是一个免费的Java图表库,让开发人员开发出专业的图表显示在他们的应用程序。 JFreeChart's extensive feature set includJFreeChart的广泛的功能包括:
· a consistent and well-documented API, supporting a wide range of chart types;翔实的API ,支持各种各样的图表类型;
· a flexible design that is easy to extend, and targets both server-side and client-side applications;一种灵活的设计,易于扩展,和指标均服务器端和客户端的应用;
· 支持多种类型的输出,包括Swing界面,图像文件(包括PNG和JPEG格式) ,和矢量图形文件格式;
· JFreeChart是“开源” ,或更具体的免费软件 。
使用JFREECHART能够是新下列图表:
饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表。
jfreechart源码主要由两个大的包组成:org.jfree.chart和org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。
核心类主要有:
org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象。
org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类。
org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持。
org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴。
org.jfree.chart.render.XXXRender:负责如何显示一个图表对象。
org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接。
XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类。
要建立一个JFreeChart图形主要有以下三个步骤(以柱图为例):
BarChart使用的dataset接口是org.jfree.data.defaultcategorydataset的dataset。使用categorydataset的子类org.jfree.data.defaultcategorydataset,再用addValue()方法把资料加入到dataset中,建立包含数值的二维阵列,代码如下:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "100", "苹果");
dataset.addValue(200, "200", "梨子");
dataset.addValue(300, "300", "葡萄");
dataset.addValue(400, "400", "香蕉");
dataset.addValue(500, "500", "荔枝");
dataset.addValue(600, "600", "西瓜");
或者使用org.jfree.data.datasetutilities ,CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
其中:rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。
要用dataset创造一个JFreeChart类别,我们并不直接实例化出一个JFreeChart实例,而是使用ChartFactory工厂类来创造一个JFreeChart实例。代码如下:
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", //JFreeChart标题
"水果", //目录轴显示标签
"产量", //数值轴显示标签
dataset, //数据源
PlotOrientation.VERTICAL, //图表方向:水平、垂直
true, //是否是否显示图例(对于简单的柱状图是false)
false, //是否生成热点工具
false); //是否生成URL连接
a ) ValueAxis类,设置柱到图上下边的距离。实现方法是:
ValueAxis rangeAxis = plot.getRangeAxis();
设置最高的一个柱与图片顶端的距离:
rangeAxis.setUpperMargin(0.15)
设置最低的一个柱与图片底端的距离:
rangeAxis.setLowerMargin(0.15)
b)org.jfree.chart.renderer.BarRenderer3D类,设置图形上显示的数值。实现方法如下:
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
设置 Wall 的颜色:
renderer.setWallPaint(Color.gray);
设置每个柱的颜色:
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(0, 100, 255));
renderer.setSeriesPaint(2, Color.GREEN);
设置每个柱的 Outline 颜色
renderer.setSeriesOutlinePaint(0, Color.BLACK);
renderer.setSeriesOutlinePaint(1, Color.BLACK);
renderer.setSeriesOutlinePaint(2, Color.BLACK);
设置每个地区所包含的平行柱之间的距离
renderer.setItemMargin(0.1);
显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
为图形加入超连接
renderer.setItemURLGenerator(new StandardCategoryURLGenerator());
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
a. 写入图片
利用ChartUtilities.writeChartAsJPEG(fos_jpg, //图片输出地址
1.0f, //设置图片质量
chart, //指定chart
500, //设置图片宽度
400); //设置图片高度
在打开图片时,有可能出现异常,注意扑捉异常。
代码如下:
FileOutputStream fos_jpg = null; try { fos_jpg = new FileOutputStream("D:fruit.jpg"); ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f, chart, 500, 400); }finally{ try{ fos_jpg.close(); }catch (Exception e) {} }
b. 显示图片
使用ChartFrame类,
ChartFrame ChartFrame = new ChartFrame(“水果产量图”,chart);
chartFrame.pack();
chartFrame.setFont(new Font("宋体",Font.BOLD,20));
chartFrame.setVisible(true);
柱状图实例结果输出:
其他的图创建方法都类似,但是每种图形都将对应每个dataset,所以在使用的时候注意选择创建dataset数据源。
七、JFREECHART图片在web中的应用
通过上边的介绍,我们已经知道JFreechart是很好的Java图表生成工具,利用JFreeChart可以很方便的生产饼图、折线图、柱图等图表。可以更加形象的分析数据。本部分主要介绍JFreeChart生成的图片在Web工程中的应用。
在eclipse中创建tomcat工程,须先在eclipse中安装tomcat插件。Tomcat插件是开源项目,可以在其官方网站免费获得。
Tomcat插件获得的网站是http://www.sysdeo.com/eclipse/tomcatPlugin.html,下载tomcat插件tomcatPluginV321.rar,将其解压到Eclipse的plugins目录下。之后再启动Eclipse ,在IDE中选择“Window”菜单的“Customize Perspective…”,展开弹出窗口的Other结点,可以看到下面有Tomcat选项,打上钩按“OK”关闭窗口。做完这一步,在IDE的工具栏就会能看到tomcat小猫的图标。
然后在到“Windows”菜单的“perferences”去做一些关于tomcat的设置,正确选择所安装的tomcat版本(我使用的是Tomcat5.5版本),指定tomcat主目录和tomcat的server.xml配置文件,然后展开Tomcat,选下边的JVM Setting,选择JRE为“Detected VM”,确认无误后点击”OK”完成设置。
好了,完成以上的设置,此时就可以在eclipse中创建一个tomcat工程,选择“IDE”的“file”菜单下面的“Project”菜单,选择”Tomcat Project”,然后输入工程名字(TestJFreeChartWeb),点击“Finnish”完成工程创建。
在Tomcat工程目录下WEB-INF目录下,创建web.xml。具体步骤为:
1. 在右击Tomcat工程目录下WEB-INF目录,选择“new”->“File”。
2. 输入file名称为web.xml,点击“finish”完成创建。
3. 在打开的file中输入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </Web-app>
至此完成web.xml的创建。
7.3 添加相关JAR文件
1.右击项目名选择“Build Path”,在其下拉框中选择最后一个“Config Bulid Path”。
2.选择“Libraries”。
3.然后在选择“Add External JARs…”.
4.在弹出的对话框中选择在<Tomcat_home>/common/lib/jasper-runtime.jar,jsp-api.jar,servlet-api.jar等JAR包文件。在加入JFreeChart需要的jfreechart-1.0.12.jar,jcommon-1.0.15.jar即可。
5.再将jfreechart-1.0.12.jar,jcommon-1.0.15.jar拷到工程目录下WEB-INF/lib文件夹中即可。
在web.xml文件<web-app>和</web-app>中间加入以下<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>
【下载地址】
百度网盘链接:https://pan.baidu.com/s/1a3VXI6RUkxSreF2BnGEZ3w
提取码:qpu7
相关文章
使用-JFreeChart来创建基于web的图表
XStream使用文档
WebService发布过程及常见问题
webpack实战入门进阶调优分享
weblogic调优参数及监控指标
weblogic节点管理
weblogic管理控制台概述
weblogic-部署和启动
WebLogic-Server-性能及调优-调优-Java-虚拟机
Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。
FlashFXP绿色版网盘下载,附激活教程 1774
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1559
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1620
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1703
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1819
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64