JFreechart教程与实例.docx

上传人:b****1 文档编号:10668884 上传时间:2023-05-27 格式:DOCX 页数:48 大小:494.87KB
下载 相关 举报
JFreechart教程与实例.docx_第1页
第1页 / 共48页
JFreechart教程与实例.docx_第2页
第2页 / 共48页
JFreechart教程与实例.docx_第3页
第3页 / 共48页
JFreechart教程与实例.docx_第4页
第4页 / 共48页
JFreechart教程与实例.docx_第5页
第5页 / 共48页
JFreechart教程与实例.docx_第6页
第6页 / 共48页
JFreechart教程与实例.docx_第7页
第7页 / 共48页
JFreechart教程与实例.docx_第8页
第8页 / 共48页
JFreechart教程与实例.docx_第9页
第9页 / 共48页
JFreechart教程与实例.docx_第10页
第10页 / 共48页
JFreechart教程与实例.docx_第11页
第11页 / 共48页
JFreechart教程与实例.docx_第12页
第12页 / 共48页
JFreechart教程与实例.docx_第13页
第13页 / 共48页
JFreechart教程与实例.docx_第14页
第14页 / 共48页
JFreechart教程与实例.docx_第15页
第15页 / 共48页
JFreechart教程与实例.docx_第16页
第16页 / 共48页
JFreechart教程与实例.docx_第17页
第17页 / 共48页
JFreechart教程与实例.docx_第18页
第18页 / 共48页
JFreechart教程与实例.docx_第19页
第19页 / 共48页
JFreechart教程与实例.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JFreechart教程与实例.docx

《JFreechart教程与实例.docx》由会员分享,可在线阅读,更多相关《JFreechart教程与实例.docx(48页珍藏版)》请在冰点文库上搜索。

JFreechart教程与实例.docx

JFreechart教程与实例

以图形报表的形式对数据进行统计分析,其显示结果非常直观、清晰,查看者能够一目了然。

然而图表的制作非常繁琐,而且当数据发生变化时,需要对其进行重新绘制。

在Java语言中,JFreeChart组件为图形报表技术提供了解决方案。

JFreeChart组件用于绘制动态图表,其强大的功能、出色的制图效果及便捷的操作方法在Java领域中已得到一致的认可。

本章将向读者介绍JFreeChart组件的使用方法及常见动态图表案例。

通过阅读本章,您可以:

了解动态图表

掌握JFreeChart组件的制图方法

掌握制图对象

理解数据集合

掌握常用绘图区对象类型及关系

掌握坐标轴对象类型及关系

掌握图片渲染对象

了解JFreeChart组件的内置JDBC

1 JFreeChart简介

JFreeChart是Java中开源的制图组件,主要用于生成各种动态图表。

在Java的图形报表技术中,JFreeChart组件提供了方便、快捷、灵活的制图方法。

1.1 认识JFreeChart组件

作为一个功能强大的图形报表组件,JFreeChart为Java的图形报表技术提供了解决方案。

在Java项目的应用中,JFreeChart组件几乎可以满足目前图形报表的所有需求。

JFreeChart组件可以生成各种各样的图形报表,如常用的柱形图、区域图、饼形图、折线图、时序图、甘特图等;而对于同一种类型的图表,JFreeChart组件还提供了不同的表现方式。

这些效果可以在下载JFreeChart组件后,通过运行JFreeChart提供的例子程序jfreechart-1.0.13-demo.ja进行查看,其运行后的效果如图24.1所示。

 

图24.1 JFreeChart演示程序

1.2 JFreeChart的下载与使用

JFreeChart是开放源代码的图形报表组件(开源站点SourceF上的一个Jave项目),其主页为http:

//www.jfree.org/jfreechart/index.html,如图24.2所示。

在主页中单击DOWNLOAD导航链接将进入下载页面,选择所要下载的JfreeChart版本即可进行下载,在本书编写时其最新版本为1.0.13,本章将以此版本为例进行讲解。

在下载成功后将得到一个名为jfreechart-1.0.13.zip的压缩包,此压缩包包含JFreeChart组件源码、示例、支持类库等文件,将其解压缩后的文件结构如图24.3所示。

其中jfreechart-1.0.13-demo.jar文件为JFreeChart组件提供的演示文件,运行此文件将可以看到利用JFreeChart组件制作的各种图表的样式及效果;source文件夹为JFreeChart的源代码文件夹,在此文件夹中可以查看到JFreeChart组件的源代码;lib文件夹为JFreeChart的支持类库,本章主要用到gnujaxp.jar、jfreechart-1.0.13.jar、servlet.jar3个JAR包。

 

图24.2 JFreeChart主页

 

图24.3 jfreechart-1.0.13文件结构

2 JFreeChart的核心对象

视频讲解:

光盘\TM\Video\24\JFreeChart的核心对象.exe

JFreeChart组件对绘制图表的细节进行了封装,它对外提供了绘制图形及设置图形属性的接口与方法,因此在JFreeChart组件的使用过程中,不必关心它所绘制的图形报表是如何实现的,但要了解JFreeChart组件的结构及掌握其核心对象。

2.1 制图对象

JFreeChart类是一个制图对象,它代表着一种制图类型。

例如,创建一个柱形图,首先需要创建一个柱形图的制图对象JFreeChart;创建一个饼形图,需要创建一个饼形图的制图对象JfreeChart。

在制图过程中,只有在创建制图对象JFreeChart后,才可以生成实际的图片。

在JFreeChart类中,可以设置所生成图片的边界、字体、背景、透明度等属性,其常用方法及说明如表24.1所示。

表1 JFreeChart类常用方法及说明

方法

说明

publicvoidsetAntiAlias(booleanflag)

设置字体模糊边界

publicvoidsetBackgroundImage(Imageimage)

设置背景图片

publicvoidsetBackgroundImageAlignment(intalignment)

设置背景图片对齐方式,

其参数常量定义在

org.jfree.ui.Align类中

publicvoidsetBackgroundImageAlpha(floatalpha)

设置背景图片透明度

publicvoidsetBackgroundPaint(Paintpaint)

设置背景颜色

publicvoidsetBorderPaint(Paintpaint)

设置边界线条颜色

publicvoidsetBorderVisible(booleanvisible)

设置边界线条是否可见

2.2 制图工厂对象

在生成图形报表时,制图对象JFreeChart是必不可少的对象,它可以直接通过new关键字进行实例化,也可以通过制图工厂ChartFactory类进行实例化。

当使用new关键字进行实例化时,需要设置大量的属性信息,因为JFreeChart组件提供的图表种类很多,对于每一种图表都要进行特殊的设置,非常繁琐。

因此在使用过程中,一般都使用制图工厂ChartFactory类进行创建。

制图工厂ChartFactory是一个抽象类,它不能被实例化,但提供了创建各种制图对象的方法,如创建柱形图对象、区域图对象、饼形图对象、折线图对象等方法,这些方法都是静态的方法,可直接创建JFreeChart对象,并且是属于某一种具体的图表类型的JFreeChart对象,使用非常方便。

ChartFactory常用方法及说明如表24.2所示。

表2 ChartFactory类常用方法及说明

图表类型

方法

说明

柱形图

publicstaticJFreeChart

createBarChart()

创建一个常规的柱形图对象

publicstaticJFreeChart

createBarChart3D()

创建一个3D效果的柱形图对象

饼形图

publicstaticJFreeChart

createPieChart()

创建一个常规的饼形图对象

publicstaticJFreeChart

createPieChart3D()

创建一个3D效果的饼形图对象

区域图

publicstaticJFreeChart

createAreaChart()

创建一个常规的区域图对象

折线图

publicstaticJFreeChart

createLineChart()

创建一个常规的折线图对象

publicstaticJFreeChart

createLineChart3D()

创建一个3D效果的折线图对象

时序图

publicstaticJFreeChart

createTimeSeriesChart()

创建一个常规的时序图对象

除表2中所列的方法外,ChartFactory类还有很多创建各种类型制图对象的方法,在此就不一一列举了。

在ChartFactory类中,对于同种类型的制图对象提供一个或多个方法,如表2中的常规制图对象与3D效果的制图对象的方法。

ChartFactory类可以理解为是一个生产制图对象JFreeChart的工厂,当需要用到某一种类型的制图对象时,通过此工厂进行获取。

例如:

1.JFreeChart chart = ChartFactory.createPieChart3D( 

2.                      饼形图",          //图表的标题 

3.              initPieData(),          //饼形图的数据集对象 

4.              true,               //是否显示图例 

5.              true,               //是否显示提示文本 

6.              false);                 //是否生成超链接 

上述代码通过ChartFactory类的createPieChart3D()方法,创建了一个3D效果的饼形图JFreeChart对象。

2.3 数据集合对象

在JFreeChart组件的图形报表技术应用中,绘制一个图表需要一定的数据,JFreeChart组件通过提供的数据进行计算并绘制出图表信息。

由于在数据的分析计算中并不是单一的数值,绘制图表时就要为JFreeChart组件提供数据集合。

数据集合对象是用于装载绘制图表所需要的数据集。

在JFreeChart组件中,针对不同图表类型提供了不同的数据集合对象,它们所具有的作用也是不同的。

本节将以常用的数据集合对象为例讲解JFreeChart中的数据集合对象。

在学习JFreeChart数据集合对象前,先来了解一下常用数据集合对象之间的关系,如图24.4所示。

 

(点击查看大图)图24.4 常用数据集合间的关系

Dataset接口是数据集合的核心对象,从图24.4可以看出,所有数据集合对象都直接或间接地实现了此接口。

图24.4中类名以Abstract开头的类均为抽象类,它们并不能实例化,但为其子类提供了公共属性与方法;DefaultCategoryDataset类、DefaultPieDataset类、XYSeriesCollection类与TimeSeriesCollection类为经常用到的数据集合对象,其说明如表3所示。

表3 常用数据集合对象及说明

数据集合对象

说明

DefaultCategoryDataset类

默认的类别数据集合对象,

可用于创建柱形图、区域图数据集合等

DefaultPieDataset类

默认的饼形图数据集合对象,

可用于创建饼形图数据集合

XYSeriesCollection类

描述坐标轴序列类型的数据集合对像,

可用于创建折线图等数据集合

TimeSeriesCollection类

描述时间序列的数据集合对象,

可用于创建时序图等数据集合

数据集合是数据集的封装对象,在JFreeChart组件的使用过程中,绘制每一种图形都需要用到数据集合对象。

图24.4中只介绍了常用的数据集合关系,除了这些数据集合外,JFreeChart还针对不同图表类型提供了不同的数据集合,由于篇幅原因,不能一一介绍,其使用方法参见JFreeChart组件的API文档。

例如:

1.//创建数据集合 

2.DefaultCategoryDataset dataSet = new DefaultCategoryDataset(); 

3.//向数据集合中添加数据 

4.dataSet.addValue(100, "长春", "土豆"); 

上述代码将创建一个DefaultCategoryDataset类型的数据集合,并调用addValue()方法向数据集合中添加一个数据。

2.4 绘图区对象

通过数据集合生成的数据图表,可以通过绘图区对象进行属性设置,例如背景色、透明度等。

绘图区对象是JFreeChart组件中的一个重要对象,由Plot类定义,可以通过此类设置绘图区属性及样式,其常用方法及说明如表24.4所示。

表4 Plot类常用方法及说明

方法

说明

publicvoidsetBackgroundImage

(Imageimage)

设置数据区的背景图片

publicvoidsetBackgroundImage

Alignment(intalignment)

设置数据区的背景图片对齐方式

(参数常量在org.jfree.ui.Align类中定义)

publicvoidsetBackgroundAlpha(floatalpha)

设置数据区的背景透明度,

范围在0.0~1.0间

publicvoidsetForegroundAlpha(floatalpha)

设置数据区的前景透明度,

范围在0.0~1.0间

publicvoidsetDataAreaRatio(doubleratio)

设置数据区占整个图表区的百分比

publicvoidsetOutLinePaint(Paintpaint)

设置数据区的边界线条颜色

publicvoidsetNoDataMessage(Stringmessage)

设置没有数据时显示的消息

JFreeChart所能生成的图形报表是多种多样的,仅仅一个Plot类并不能满足绘图区样式的设置,在对不同类型图形的设置中,可以通过Plot的子类进行实现,其常用子类的类图如图24.5所示。

 

图24.5 常用绘图区对象及关系

(1)PiePlot类

PiePlot类是Plot类的子类,主要用于描述PieDataset数据集合类型的图表,通常使用此类来绘制一个饼形图,其常用方法及说明如表5所示。

表5 PiePlot类常用方法及说明

方法

说明

publicvoidsetDataset(PieDatasetdataset)

设置绘制图表所需要的数据集合

publicvoidsetCircular(booleanflag)

设置饼形图是否一定是正圆

publicvoidsetStartAngle(doubleangle)

设置饼形图的初始角度

publicvoidsetDirection(Rotationdirection)

设置饼形图的旋转方向

publicvoidsetExplodePercent

(intsection,doublepercent)

在显示饼形图时,

设置突出显示部分的距离

publicvoidsetLabelFont(Fontfont)

设置分类标签字体

(3D效果下无效)

publicvoidsetLabelPaint(Paintpaint)

设置分类标签字体颜色

(3D效果下无效)

(2)CategoryPlot类

CategoryPlot是Plot类的子类,类主要用于描述CategoryDataset数据集合类型的图表,它支持折线图、区域图等,其常用方法及说明如表24.6所示。

表6 CategoryPlot类常用方法及说明

方法

说明

publicvoidsetDatase

t(PieDatasetdataset)

设置绘制图表所需要的数据集合

publicvoidsetColumn

RenderingOrder(SortOrderorder)

设置数据分类的排序方式

publicvoidsetAxisOffset

(Spaceroffset)

设置坐标轴到数据区的间距

publicvoidsetOrientation

(PlotOrientationorientation)

设置数据区的方向(横向或纵向)

publicvoidsetDomainAxis

(CategoryAxisaxis)

设置数据区的分类轴

publicvoidsetRangeAxis

(ValueAxisaxis)

设置数据区的数据轴

publicvoidaddAnnotation

(CategoryAnnotationannotation)

设置数据区的注释

(3)XYPlot类

XYPlot类是Plot类的子类,主要用于描述XYDataset数据集合类型的图表。

此类可以具有0或多个数据集合,并且每一个数据集合可以与一个渲染对象相关联,其常用方法及说明如表7所示。

表7 XYPlot类常用方法及说明

方法

说明

publicValueAxisgetDomainAxis()

返回X轴

publicValueAxisgetRangeAxis()

返回Y轴

publicvoidsetDomainAxis(ValueAxisaxis)

设置X轴

publicvoidsetRangeAxis(ValueAxisaxis)

设置Y轴

2.5 坐标轴对象

在JFreeChart组件中涉及到坐标轴类型的图表时,其样式与属性由坐标轴对象Axis类进行控制。

此类是坐标轴对象的父类,其常用方法及说明如表8所示。

表8 Axis类常用方法及说明

方法

说明

publicvoidsetVisible(booleanflag)

设置坐标轴是否可见

publicvoidsetAxisLinePaint(Paintpaint)

设置坐标轴线条颜色,

此设置在3D效果下无效

publicvoidsetAxisLineVisible(booleanvisible)

设置坐标轴线条是否可见

publicvoidsetLabel(Stringlabel)

设置坐标轴标题

publicvoidsetLabelFont(Fontfont)

设置坐标轴标题字体

publicvoidsetLabelPaint(Paintpaint)

设置坐标轴标题颜色

publicvoidsetLabelAngle(doubleangle)

设置坐标轴标题旋转角度

JFreeChart组件针对不同类型的图表对象,提供了不同类型的坐标轴对象,由Axis类的子类进行扩展,其常用子类的类图如图24.6所示。

 

图24.6 常用坐标轴对象及关系

(1)CategoryAxis类

CategoryAxis类是Axis类的子类,主要用于对分类轴的相关属性进行设置,其常用方法及说明如表9所示。

表9 CategoryAxis类常用方法及说明

方法

说明

publicvoidsetCategoryMargin(doublemargin)

设置分类轴边距

publicvoidsetLowerMargin(doublemargin)

设置分类轴下边距或左边距

publicvoidsetUpperMargin(doublemargin)

设置分类轴上边距或右边距

publicvoidsetVertical

CategoryLabels(booleanflag)

设置分类轴标题是否旋转到垂直

publicvoidsetMaxCategory

LabelWidthRatio(floatratio)

设置分类轴分类标签的最大宽度

(2)ValueAxis类

ValueAxis类是Axis类的子类,也是NumberAxis类与DateAxis类的父类,主要用于对数据轴的相关属性进行设置,其常用方法及说明如表10所示。

表10 ValueAxis类常用方法及说明

方法

说明

publicvoidsetAutoRange(booleanauto)

设置数据轴数据范围是否为自动

publicvoidsetFixedAutoRange(doublelength)

设置数据轴固定数据范围

publicvoidsetInverted(booleanflag)

设置数据轴是否反向

publicvoidsetLowerMargin(doublemargin)

设置分类轴下边距或左边距

publicvoidsetUpperMargin(doublemargin)

设置分类轴上边距或右边距

publicvoidsetLowerBound(doublemin)

设置数据轴上显示的最小值

publicvoidsetUpperBound(doublemax)

设置数据轴上显示的最大值

(3)NumberAxis类

NumberAxis类是ValueAxis类的子类,主要用于对数值类型数据轴的相关属性进行设置,其常用方法及说明如表11所示。

表11 NumberAxis类常用方法及说明

方法

说明

publicvoidsetAuto

RangeIncludesZero(booleanflag)

设置是否强制在自动

选择的数据范围中包含0

publicvoidsetAuto

RangeStickyZero(booleanflag)

设置是否强制在整个数据

轴中包含0,即使0不在数据范围中

publicvoidsetNumberFormat

Override(NumberFormatformatter)

设置数据轴数据标签的显示格式

(4)DateAxis类

DateAxis类是ValueAxis类的子类,主要用于对日期轴的相关属性进行设置,其常用方法及说明如表12所示。

表12 DateAxis类常用方法及说明

方法

说明

publicvoidsetMaximumDate

(DatemaximumDate)

设置日期轴上的最小日期

PublicvoidsetMinimumDate

(DateminimumDate)

设置日期轴上的最大日期

publicvoidsetDateFormat

Override(DateFormatformatter)

设置日期轴日期标签的显示格式

publicvoidsetTickUnit(DateTickUnitunit)

设置日期轴的日期标签

2.6 图片渲染对象

图片渲染对象用于渲染和显示图表,它在图表的显示效果方面起着很大的作用。

在JFreeChart组件中,渲染对象定义为AbstractRenderer类,此类是所有渲染对象的父类,但它是一个抽象类,其常用方法及说明如表13所示。

表13 AbstractRenderer类常用方法及说明

方法

说明

publicvoidsetItemLabelAnchorOffset(doubleoffset)

设置数据标签与数据点的偏移

publicvoidsetItemLabelsVisible(booleanvisible)

设置数据标签是否可见

publicvoidsetItemLabelFont(Fontfont)

设置数据标签的字体

publicvoidsetItemLabelPaint(Paintpaint)

数据标签的字体颜色

publicvoidsetOutLinePaint(Paintpaint)

设置图形边框的线条颜色

publicvoidsetPaint(Paintpaint)

所有分类图形的颜色

publicvoidsetSeriesItemLabels

Visible(intseries,bo

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

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2