JFreeChart基础教程.docx

上传人:b****5 文档编号:11687887 上传时间:2023-03-30 格式:DOCX 页数:17 大小:25.22KB
下载 相关 举报
JFreeChart基础教程.docx_第1页
第1页 / 共17页
JFreeChart基础教程.docx_第2页
第2页 / 共17页
JFreeChart基础教程.docx_第3页
第3页 / 共17页
JFreeChart基础教程.docx_第4页
第4页 / 共17页
JFreeChart基础教程.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

JFreeChart基础教程.docx

《JFreeChart基础教程.docx》由会员分享,可在线阅读,更多相关《JFreeChart基础教程.docx(17页珍藏版)》请在冰豆网上搜索。

JFreeChart基础教程.docx

JFreeChart基础教程

一、JFreeChart获取。

 

       JFreeChart是JFreeChart公司在开源网站SourceF上的一个项目,该公司的主要产品有如下:

 

       1、JFreeReport:

报表解决工具 

       2、JFreeChart:

Java图形解决方案(Application/Applet/Servlet/Jsp) 

       3、JCommon:

JFreeReport和JFreeChart的公共类库 

       4、JFreeDesigner:

JFreeReport的报表设计工具 

  我们可以从jfree官方网站上获取最新版本(最新的版本是1.0.5)和相关资料(但是jfree的DeveloperGuides是需要花美金才能获取), 

   获取地址:

http:

//www.jfree.org/jfreechart/index.html(同时可以获得简明介绍) 

   我们以当前版本:

jfreechart-1.0.0-rc3.tar.gz为例子进行说明 

二、JFreeChart配置安装 

   1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar 

      是例子程序(该部分留给大家自己去研究) 

   2、为了配置成功,我们需要关注的文件有如下三个:

jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar、 

      lib\gnujaxp.jar 

   3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入 

二、JFreeChart配置安装 

   1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar 

      是例子程序(该部分留给大家自己去研究) 

   2、为了配置成功,我们需要关注的文件有如下三个:

jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar、 

      lib\gnujaxp.jar 

   3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入 

      如果是WEB开发,以TOMCAT中的一个WEB项目TEST为例子说明:

 

      把上述三个文件拷贝到TEST\WEB-INF\LIB中,然后修改TEST\WEB-INF\web.xml文件,在其中加入如下代码:

 

                

                   DisplayChart 

                   org.jfree.chart.servlet.DisplayChart 

                

                

                   DisplayChart 

                   /servlet/DisplayChart 

                

              至此jfreechart的配置就完成了,下面就可以进行jfreechart的开发了。

这里值得提出的是jfreechart的类 

      结构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一样,有时候可能需要查源码。

如果 

      是中文显示的时候可能依据观感需要改变源码的字体,不过我个人觉得这个版本比以前版本要好一些。

 

三、JFreeChart功能介绍 

   JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:

 

   piecharts(2Dand3D):

饼图(平面和立体) 

   barcharts(regularandstacked,withanoptional3Deffect):

柱状图 

   lineandareacharts:

曲线图 

   scatterplotsandbubblecharts 

   timeseries,high/low/open/closechartsandcandlestickcharts:

时序图 

   combinationcharts:

复合图 

   Paretocharts 

   Ganttcharts:

甘特图 

   windplots,meterchartsandsymbolcharts 

   wafermapcharts 

   (态图表,饼图(二维和三维),柱状图(水平,垂直),线图,点图,时间变化图,甘特图,股票行情图,混和图,温度计图,刻度图等常用商用图表) 

   图形可以导出成PNG和JPEG格式,同时还可以与PDF和EXCEL关联 

   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开发(Application/Applet) 

one:

piecharts 

/** 

*JfreeChartTest.java 

*author:

longlong 

*May31,2007 

*/ 

packagecom.ghg.java; 

importorg.jfree.data.general.DefaultPieDataset; 

importorg.jfree.chart.*; 

publicclassJfreeChartTest{ 

   publicstaticvoidmain(String[]args){ 

      //创建饼图数据对象 

      DefaultPieDatasetdfp=newDefaultPieDataset(); 

      dfp.setValue("管理人员",25); 

      dfp.setValue("市场人员",35); 

      dfp.setValue("开发人员",20); 

      dfp.setValue("后勤人员",5); 

      dfp.setValue("财务人员",15); 

       //CreateJFreeChartobject 

      JFreeCharta=ChartFactory.createPieChart("CityInfoPort公司组织架构图",dfp,true,true,true); 

      ChartFrame frame=newChartFrame("CityInfoPort公司组织架构图",a,true); 

      frame.pack(); 

      frame.setVisible(true); 

Refactorone 

/** 

*JfreeChartOne.java 

*author:

longlong 

*May31,2007 

*/ 

packagecom.ghg.java; 

importjava.awt.Font; 

importjavax.swing.JPanel; 

importorg.jfree.chart.ChartFactory; 

importorg.jfree.chart.ChartPanel; 

importorg.jfree.chart.JFreeChart; 

importorg.jfree.chart.plot.PiePlot; 

importorg.jfree.chart.plot.PlotOrientation; 

importorg.jfree.data.category.CategoryDataset; 

importorg.jfree.data.category.DefaultCategoryDataset; 

importorg.jfree.data.general.DefaultPieDataset; 

importorg.jfree.data.general.PieDataset; 

importorg.jfree.ui.ApplicationFrame; 

publicclassJfreeChartOneextendsApplicationFrame{ 

   privatestaticfinallongserialVersionUID=1L; 

   publicJfreeChartOne(Strings) 

   { 

      super(s); 

      setContentPane(createJPanel()); 

   } 

   publicstaticvoidmain(String[]args){ 

      JfreeChartOneone=newJfreeChartOne("CityInfoPort公司组织架构图"); 

      one.pack(); 

      one.setVisible(true); 

   } 

   //利用静态方法设定数据源(饼状图) 

   publicstaticPieDatasetcreatePieDataset(){ 

      DefaultPieDatasetdefaultpiedataset=newDefaultPieDataset(); 

      defaultpiedataset.setValue("管理人员",10.02D); 

      defaultpiedataset.setValue("市场人员",20.23D); 

      defaultpiedataset.setValue("开发人员",60.02D); 

      defaultpiedataset.setValue("OEM人员",10.02D); 

      defaultpiedataset.setValue("其他人员",5.11D); 

      returndefaultpiedataset; 

   } 

   //通过ChartFactory创建JFreeChart的实例 

   publicstaticJFreeChartcreateJFreeChart(PieDatasetp) 

   { 

      JFreeCharta=ChartFactory.createPieChart("CityInfoPort公司组织架构图",p,true,true,true); 

      PiePlot pie=(PiePlot)a.getPlot(); 

      pie.setLabelFont(newFont("SansSerif",Font.BOLD,12)); 

      pie.setNoDataMessage("Nodataavailable"); 

      pie.setCircular(true); 

      pie.setLabelGap(0.01D);//间距 

      returna; 

   } 

   publicstaticJPanel createJPanel(){ 

      JFreeChartjfreechart=createJFreeChart(createPieDataset()); 

      returnnewChartPanel(jfreechart); 

   } 

效果如图所示:

 

two:

创建类别图 

/** 

*JfreeChartTest.java 

*author:

longlong 

*May31,2007 

*/ 

packagecom.ghg.java; 

importorg.jfree.data.category.DefaultCategoryDataset; 

importorg.jfree.data.general.DefaultPieDataset; 

importorg.jfree.chart.*; 

importorg.jfree.chart.plot.PlotOrientation; 

publicclassJfreeChartTest{ 

   publicstaticvoidmain(String[]args){ 

//    创建类别图(Category)数据对象 

      DefaultCategoryDatasetdataset=newDefaultCategoryDataset(); 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      JFreeChartchart=ChartFactory.createBarChart3D("水果产量图","水果","水果",dataset,PlotOrientation.VERTICAL,true,true,true); 

      ChartFrame frame=newChartFrame("水果产量图",chart,true); 

      frame.pack(); 

      frame.setVisible(true); 

   } 

按照one的重构办法也可以对这个程序实现重构。

 

 当前位置:

主页>技术资讯>JSP编程>文章内容 

jFreeChart初探-JSP教程,资料/其他  

来源:

作者:

发布时间:

2007-12-27  

//****************************************** 

//*            author:

rautinee           * 

//*        email:

rautinee@       * 

//*              * 

//*本文可自由传播使用,但请务必保留此信息 * 

//****************************************** 

jfreechart也许对大家来说很陌生,她是一款免费的、功能强大的统计图生成工具,能够直接生成png,jpg等各式的文档 

为我们java项目的研发增加了一部利器。

她的英文简介 

jfreechartisafreejavaclasslibraryforgeneratingcharts,including:

 

piecharts; 

linechartsandhorizontal/verticalbarcharts(regularandstacked,withoptional3d-effect); 

xyplotsandscatterplots; 

timeseries,high/low/open/closechartsandcandlestickcharts; 

combinationcharts; 

paretocharts; 

ganttcharts; 

bubblecharts; 

windplots,meterchartsandsymbolcharts; 

正好我最近的一个项目用到她,于是就很粗略的看了一下,现在把他拿出来和大家分享,希望对大家的工作有所 

帮助。

 

本文主要是讲解她在jsp上面的应用。

例子采用jsp+javabean结构实现 

准备工作:

首先我们需要什么?

当然是jfreechart的package了,能够在她的官方网站上面找到下载链接 

http:

//www.jfree.org/jfreechart/,把包下下来,配置到tomcat当中,然后能够开始我们的jfreechart之旅 

了。

 

下面我要做的是个饼状统计图,首先建立javabean文档 

文档名:

tryitshow.java 

packagecom.tryit; 

importjava.io.*; 

importjava.awt.insets; 

importjava.awt.font; 

importjava.io.printwriter; 

importjava.text.simpledateformat; 

importjava.util.iterator; 

importjava.util.locale; 

importjava.text.numberformat; 

importjavax.servlet.http.httpsession; 

importorg.jfree.data.*; 

importorg.jfree.chart.*; 

importorg.jfree.chart.axis.*; 

importorg.jfree.chart.renderer.verticalbarrenderer; 

importorg.jfree.chart.renderer.standardxyitemrenderer; 

importorg.jfree.chart.plot.*; 

importorg.jfree.chart.entity.*; 

importorg.jfree.chart.tooltips.*; 

importorg.jfree.chart.urls.*; 

importorg.jfree.chart.servlet.*; 

importorg.jfree.chart.texttitle; 

import.url; 

publicclasstryitshow 

   publicstaticstringgeneratepiechart(stringinfostr,stringtitles,httpsessionsession,printwriterpw) 

       { 

           stringfilename=null; 

           fontfont; 

            

           try{ 

                   // 建立piedataset 

           d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1