关闭

关闭

关闭

封号提示

内容

首页 JFreeChart使用详细教程.ppt

JFreeChart使用详细教程.ppt

JFreeChart使用详细教程.ppt

上传者: trkqytr 2011-10-10 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《JFreeChart使用详细教程ppt》,可适用于IT/计算机领域,主题内容包含Http:wwwamttgroupcom动态图表JFreeChart作者:吴斌日期:页简介JFreeChart是Java中开源的制图组件主要用于生成符等。

Http:wwwamttgroupcom动态图表JFreeChart作者:吴斌日期:页简介JFreeChart是Java中开源的制图组件主要用于生成各种动态图表。在Java的图形报表技术中JFreeChart组件提供了方便、快捷、灵活的制图方法。作为一个功能强大的图形报表组件JFreeChart为Java的图形报表技术提供了解决方案。在Java项目的应用中JFreeChart组件几乎可以满足目前图形报表的所有需求。JFreeChart组件可以生成各种各样的图形报表如常用的柱形图、区域图、饼形图、折线图、时序图、甘特图等而对于同一种类型的图表JFreeChart组件还提供了不同的表现方式。Http:wwwamttgroupcom页JFreeChart的下载与使用JFreeChart是开放源代码的图形报表组件(开源站点SourceForgenet上的一个Jave项目)其主页为http:wwwjfreeorgjfreechartindexhtml。在主页中单击DOWNLOAD导航链接将进入下载页面选择所要下载的JfreeChart版本即可进行下载目前最新版本为。在下载成功后将得到一个名为jfreechartzip的压缩包此压缩包包含JFreeChart组件源码、示例、支持类库等文件将其解压缩后的文件结构如右图所示。Http:wwwamttgroupcom页其中jfreechartdemojar文件为JFreeChart组件提供的演示文件运行此文件将可以看到利用JFreeChart组件制作的各种图表的样式及效果source文件夹为JFreeChart的源代码文件夹在此文件夹中可以查看到JFreeChart组件的源代码lib文件夹为JFreeChart的支持类库。Http:wwwamttgroupcom页常见统计图介绍柱状图:也称条图、长条图、条状图是一种以长方形的长度为变量的表达图形的统计报告图由一系列高度不等的纵向条纹表示数据分布的情况用来比较两个或以上的价值(不同时间或者不同条件)只有一个变量通常利用于较小的数据集分析。柱状图图亦可横向排列或用多维方式表达。Http:wwwamttgroupcom页饼形图:一个划分为几个扇区的圆形图表用于描述量、频率或百分比之间的相对关系。在饼图中每个扇区的弧长(以及(圆心角)和面积)大小为其所表示的数量的比例。这些扇区合在一起刚好是一个完全的圆形。顾名思义这些扇区拼成了一个切开的饼形图案。Http:wwwamttgroupcom页折线图:是用一个单位长度表示一定的数量根据数量的多少描出各点然后把各点用线段顺次连接起来以折线的上升或下降来表示统计数量增减变化。折线统计图不但可以表示出数量的多少而且还能够清楚的表示出数量增减变化的情况。Http:wwwamttgroupcom页JFreeChart开发前准备开发前的准备JfreeChart开发环境的搭建分为两步:导入JFreeChart组件包配置JFreeChart。、导入JFreeChart包:导入在lib目录下的jfreechartjar、jcommonjar两个Jar包到工程。、配置JFreeChart:JFreeChart组件能够成JPEG、PNG格式的图片其输出方式可以直接存储在硬盘中也可以交给JFreeChart组件进行管理。在Web应用中所生成的图形报表一般均为动态图表如果对每次生成的图表都进行直接存储将Http:wwwamttgroupcom页会产生大量的垃圾文件时间长了必须进行清理。因此由JFreeChart组件进行管理来生成图片是一个不错的选择它不仅可以提供图片的路径而且在查看图片后JFreeChart组件会自动进行清理。JFreeChart组件提供了一个Servlet文件用于获取生成的图片此Servlet文件存在于JFreeChart组件包中所以在使用过程中需要将其配置到Webxml文件中。其配置方法如下:Http:wwwamttgroupcom页JFreeChart开发流程JFreeChart分为三个步骤:创建数据集:创建用来构成JFreeChart图表的数据JFreeChart图表显示的数据都来源于数据集。创建JFreeChart对象:JFreeChart类是一个制图对象它代表着一种制图类型在制图过程中只有在创建制图对象JFreeChart后才可以生成实际的图片。获取图片:获取图片在web页面显示。Http:wwwamttgroupcom页创建数据集在JFreeChart组件的图形报表技术应用中绘制一个图表需要一定的数据JFreeChart组件通过提供的数据进行计算并绘制出图表信息。由于在数据的分析计算中并不是单一的数值绘制图表时就要为JFreeChart组件提供数据集合。数据集合对象是用于装载绘制图表所需要的数据集。在JFreeChart组件中针对不同图表类型提供了不同的数据集合对象它们所具有的作用也是不同的。常用的数据集对象:DefaultCategoryDataset类:默认的类别数据集合对象可用于创建柱形图、折线图、区域图数据集合等。DefaultPieDataset类:默认的饼形图数据集合对象可用于创建饼形图数据集合。Http:wwwamttgroupcom页如下图所示方法则创建了一个可用于绘制图表的数据集对象。该数据集可以用来用来创建简单的一维柱状图。不同的图形采用的数据集对象不同同一数据集对象设置的数据不同产生图形数据也不同。所以数据集生产图形内容、形状的关键。Http:wwwamttgroupcom页创建JFreeChart对象在生成图形报表时制图对象JFreeChart是必不可少的对象它可以直接通过new关键字进行实例化也可以通过制图工厂ChartFactory类进行实例化。当使用new关键字进行实例化时需要设置大量的属性信息因为JFreeChart组件提供的图表种类很多对于每一种图表都要进行特殊的设置非常繁琐。因此在使用过程中一般都使用制图工厂ChartFactory类进行创建。制图工厂ChartFactory是一个抽象类它不能被实例化但提供了创建各种制图对象的方法如创建柱形图对象、区域图对象、饼形图对象、折线图对象等方法这些方法都是静态的方法可直接创建JFreeChart对象并且是属于某一种具体的图表类型的JFreeChart对象使用非常方便。Http:wwwamttgroupcom页ChartFactory常用方法及说明如下:Http:wwwamttgroupcom页如下图所示方法通过制图工厂对象创建了一个JFreeChart对象其中createDataSet()方法返回数据集对象作为JFreeChart对象的数据来源。Http:wwwamttgroupcom页获取图片获取图片有两种方式第一种方式会在tomcattemp目录生产图片文件第二种方式采用输出流的方式获取图片不会产生垃圾文件。()在输出图片之前首先要生成JFreeChart组件所绘制的图片。此操作通过调用ServletUtilities类的saveChartAsJPEG()方法来实现它返回一个JPEG格式的图片名称。Http:wwwamttgroupcom页通过此方法生成图片后调用已注册的JFreeChart提供的Servlet类DisplayChart即可获取图片的相对路径。输出图片在Jsp中的应用关键代码如下可参照该代码将其运用到servlet或Struts的Action中。Http:wwwamttgroupcom页()如下所示为采用输出流方式输出图片在struts中的应用。调用ChartUtilities的writeChartAsJPEG方法则可直接将图片输出到页面而不用存储在硬盘中。Http:wwwamttgroupcom页ChartUtilities的writeChartAsJPEG方法介绍:如果想在Jsp页面调用该图片把图片的src请求路径设置为产生输出流的Action即可例如:Http:wwwamttgroupcom页两种图片获取方式分析通过对比我们可发现第一种图片获取方式是在Action中生成图片到硬盘在Action返回时通过给页面传递该图片的路径来访问图片。这样在同一个显示页面无论你有多少个图片要显示都可以通过一个Action去生成多个图片传递其路径来实现图片路径只是Action传递的众多参数中的普通一员。而且该Action能配置返回值所以该Action实际上就是我们的业务Action用来实现跳转。通过给该Action传递参数处理数据生成图片跳转到页面流程清晰也符合我们一贯的程序设计思维。我们再来看第二种图片获取方式。该方式没有实际生成图片而是通过在Action中将图片的数据流直接写到页面上。首Http:wwwamttgroupcom页先该Action不能拥有返回值无法实现页面跳转不能作为我们的业务Action。所以处理业务单元我们还得有另外的业务Action。这样就会出现两个问题:一是参数的传递比如在页面我们有参数传递给业务Action处理完业务传递一些参数跳转到页面但这时并没有涉及到图片的生成图片的生成是在通过页面中的img标签的src去请求额外的生成图片的Action通过数据流方式将图片写到页面。这样就还会涉及到用来处理图片逻辑的参数的二次传递显然这种设计是比较鸡肋的。二是当一个业务单元中需要多个图片就得为每张图片设计一个输出图片数据流的Action显然不可取。Http:wwwamttgroupcom页综合分析:图片输出我们采用第一种方式。但第一种方式时间久了会产生大量的垃圾图片文件。JFreeChart也考虑到了这一问题为我们设计了一个监听器用来删除垃圾图片。该监听器的原理是:当session失效时则删除由该session产生的图片文件。监听器在webxml中配置如下:Session失效并不是浏览器关闭时默认时间是分钟可以自己设置。Http:wwwamttgroupcom页至此经过以上三步一个简单统计图就展现在页面上了。通常情况下为了使所生成的图片更加美观、大方需要对所生成的图片进行一定的设置。可以通过以下几个对象对生成的图片进行设置。制图工厂对象ChartFactory:该对象提供了一个对图片主题进行设置的方法。其中standardChartTheme为StandardChartTheme对象。制图对象JFreeChart:通过该对象提供的方法可以对图片标题字体、背景图片、背景颜色、边框等进行设置。JFreeChart类常用方法及说明如下表:Http:wwwamttgroupcom页坐标轴对象。绘图区对象。图片渲染对象。Http:wwwamttgroupcom页坐标轴对象在JFreeChart组件中涉及到坐标轴类型的图表时其样式与属性由坐标轴对象Axis类进行控制。此类是坐标轴对象的父类其常用方法及说明如下表所示:Http:wwwamttgroupcom页JFreeChart组件针对不同类型的图表对象提供了不同类型的坐标轴对象由Axis类的子类进行扩展其常用子类主要有:CategoryAxis类、ValueAxis类、NumberAxis类、DateAxis类。()CategoryAxis类CategoryAxis类是Axis类的子类主要用于对分类轴的相关属性进行设置其常用方法及说明如下表所示。Http:wwwamttgroupcom页()ValueAxis类ValueAxis类是Axis类的子类也是NumberAxis类与DateAxis类的父类主要用于对数据轴的相关属性进行设置其常用方法及说明如下表所示。Http:wwwamttgroupcom页()NumberAxis类NumberAxis类是ValueAxis类的子类主要用于对数值类型数据轴的相关属性进行设置其常用方法及说明如下表所示。Http:wwwamttgroupcom页()DateAxis类DateAxis类是ValueAxis类的子类主要用于对日期轴的相关属性进行设置其常用方法及说明如下表所示。Http:wwwamttgroupcom页绘图区对象通过数据集合生成的数据图表可以通过绘图区对象进行属性设置例如背景色、透明度等。绘图区对象是JFreeChart组件中的一个重要对象由Plot类定义可以通过此类设置绘图区属性及样式其常用方法及说明如下表所示。Http:wwwamttgroupcom页JFreeChart所能生成的图形报表是多种多样的仅仅一个Plot类并不能满足绘图区样式的设置在对不同类型图形的设置中可以通过Plot的子类进行实现其常用子类主要有:PiePlot类、CategoryPlot类、XYPlot类。()PiePlot类PiePlot类是Plot类的子类主要用于描述PieDataset数据集合类型的图表通常使用此类来绘制一个饼形图其常用方法及说明如下表所示。Http:wwwamttgroupcom页Http:wwwamttgroupcom页()CategoryPlot类CategoryPlot是Plot类的子类类主要用于描述CategoryDataset数据集合类型的图表它支持折线图、区域图等其常用方法及说明如下表所示。Http:wwwamttgroupcom页()XYPlot类XYPlot类是Plot类的子类主要用于描述XYDataset数据集合类型的图表。此类可以具有或多个数据集合并且每一个数据集合可以与一个渲染对象相关联其常用方法及说明如下表所示。Http:wwwamttgroupcom页图片渲染对象图片渲染对象用于渲染和显示图表它在图表的显示效果方面起着很大的作用。在JFreeChart组件中渲染对象定义为AbstractRenderer类此类是所有渲染对象的父类但它是一个抽象类其常用方法及说明如下表所示。在图片渲染对象中JFreeChart组件同样对AbstractRenderer类进行了扩展在使用过程中可根据实际需要选择合适的AbstractRenderer类的子类对象。Http:wwwamttgroupcom页JFreeChart在Struts中的应用JFreeChart无论是应用在JSP、Servlet还是Struts的Action其开发流程的前两步都是一样的:创建数据集、创建JFreeChart对象。乃至其获取图片的方式都一样。获取图片得到一个图片的请求路径只是这个路径是用Actiong传递给JSP还是用Servlet传递给JSP还是JSP直接写Java代码来获取这个路径的区别。所以说本质上一样的。能看懂JSP获取图片路径的方式就自然能将其改写成Action如下图附上Actiong中应用实例。graphURL为图片请求路径将其传递给JSP页面即可。Http:wwwamttgroupcom页Http:wwwamttgroupcom页JFreeChartDEMO工程介绍工程名:jfreeChatpro。访问项目主页:http:localhost:。即可访问所有示例图表。右图所示为工程目录结构。Http:wwwamttgroupcom页谢谢观看Http:wwwamttgroupcom

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/39
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部