JFreeChart.ppt_第1页
JFreeChart.ppt_第2页
JFreeChart.ppt_第3页
JFreeChart.ppt_第4页
JFreeChart.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、动态图表JFreeChart,金晓杰 日期:2012-08,1页,简介,JFreeChart是Java中开源的制图组件,主要用于生成各种动态图表。在Java的图形报表技术中,JFreeChart组件提供了方便、快捷、灵活的制图方法。 作为一个功能强大的图形报表组件,JFreeChart为Java的图形报表技术提供了解决方案。在Java项目的应用中,JFreeChart组件几乎可以满足目前图形报表的所有需求。 JFreeChart组件可以生成各种各样的图形报表,如常用的柱形图、区域图、饼形图、折线图、时序图、甘特图等;而对于同一种类型的图表,JFreeChart组件还提供了不同的表现方式。,2页

2、,JFreeChart的下载与使用,JFreeChart是开放源代码的图形报表组件(开源站点SourceF上的一个Jave项目),其主页为/jfreechart/index.html。,3页,JFreeChart 的主要类和接口,1、JFreeChart 类 在生成图形报表时,制图对象JFreeChart是必不可少的对象,它可以直接通过new关键字进行实例化,也可以通过制图工厂ChartFactory类进行实例化。当使用new关键字进行实例化时,需要设置大量的属性信息,因为JFreeChart组件提供的图表种类很多,对于每一种图表都要进行特殊的设置,非常繁

3、琐。因此在使用过程中,一般都使用制图工厂ChartFactory类进行创建。 2、ChartFactory 类 制图工厂ChartFactory是一个抽象类,它不能被实例化,但提供了创建各种制图对象的方法,如创建柱形图对象、区域图对象、饼形图对象、折线图对象等方法,这些方法都是静态的方法,可直接创建JFreeChart对象,并且是属于某一种具体的图表类型的JFreeChart对象,使用非常方便。,4页,ChartFactory常用方法及说明如下:,5页,JFreeChart 的主要类和接口,3、XXXXXDataset数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数

4、据集对象类。常用的数据集对象有:柱状图数据集对象 DefaultCategoryDataset、饼图数据集对象DefauldPieDataset和曲线图数据集对象 DefaultTableXYDataset 。 4、XXXXXPlot 图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持。常用的Plot对象有:柱状图CategoryPlot、饼图PiePlot和曲线图XYPlot。 5、XXXXXAxis用于处理图表的两个轴:纵轴和横轴。常用的有NumberAxis数据轴,DateAxis日期轴。,6页,JFreeChart 的主

5、要类和接口,6、 XXXXXRenderer负责如何显示一个图表对象。常用的Renderer有DefaultCategoryItemRenderer 柱状图显示器StandardXYItemRenderer曲线图显示器。饼图的Renderer 7、XXXXXURLGenerator用于生成Web图表中每个项目的鼠标点击链接。常用的URLCenerator有StandardCategoryURLGenerator 、StandardPieURLGeneratorStandardXYURLGenerator 8、ChartUtilities 图表工具类,用于输出各种图表 writeChartAsP

6、NG(params) writeChartAsJPEG(params) saveChartAsPNG(params) saveChartAsJPEG(params),7页,JfreeChart中的常见包,org.jfree.chart.servlet.DisplayChart 这个包中的DisplayChart继承自Httpservlet 用于处理显示图象。 org.jfree.chart.servlet.ServletUtilities 这个包中的ServletUtilitie类有一系列方法,例如,saveChartAs*;saveChartAs*是把图表按照不同的形式存储为图象;sendT

7、empFile方法被重载了很多 次,用于把文件流发送response。,8页,JfreeChart中的常见包,org.jfree.chart 这个包包含JfreeChart类库中主要的类和接口 org.jfree.chart.axis 这个包包含所有轴有关的类和接口: a.CategoryPlot 和 XYPlot 操作两个轴(默认),我们叫他们domain轴和range轴。这些专用名词是建立这些地图可视化地把domain轴的值映射到value轴上的概念之上。效果上,domain轴作为x轴,range作为y轴,但我们更热衷与专用名词 b.轴类提供的默认设置基本适合大多数程序的需要,但是,有很多

8、通过JFreeChartAPI改变属性来定制轴的特性。一定要通过读API来熟悉可以定制的选项。 c.JFreeChart的一个更强大的功能是同一个Chart可以提供多个domain轴和多个value轴轴类是可克隆和可串行化的。,9页,10页,11页,12页,创建数据集(DefaultCategoryDataset) 创建JFreeChart 设置属性 图形输出,开发流程,13页,1.饼图,饼状图是图形报表中最为简单和基础的图形,它又是jfreechart中封装最为好的报表,有很多接口和方法专门为它设计,所以饼状图是学习jfreechart首先的,同时也是非常重要的,14页,PieDataset

9、(接口):用于生成圆饼图的数据集类型 DefaultPieDataset:实现PieDataset接口,并用于绘制圆饼图的必需数据集,它主要用于存储一些手动添加的数据集 defaultpiedataset.setValue(key, value) 用于向数据集中添加数据 key:一般为该数据的来源名称 value:一般为double类型的数据,Pie 所用的数据集:,15页,Pie chart 常用类介绍,JFreeChart 具体的图表类,可由ChartFactory创建不同的图表对象 通过该类提供的方法可以对JFreeChart对象图片标题字体、背景图片、背景颜色、边框等进行设置。 Cha

10、rtFactory 图表工厂,用于创建各种图表(JFreeChart)对象 普通效果的饼状图: ChartFactory.createPieChart() 3D 效果的饼状图: ChartFactory.createPieChart3D(),16页,Plot(接口),plot.setBackgroundAlpha(0.5F);/设置透明度 plot.setBackgroundPaint(Color.blue);/设置背景色 plot.setCircular(false);/指定显示的饼图上圆形(false)还椭圆形(true) plot.setLabelFont(new Font(宋体, 0,

11、 12); /设置分类标签字体 plot.setLabelGap(0.09D); /设置字体间的距离 plot.setExplodePercent(JavaSE, 0.5D); /把XXX(JavaSE)这个数据块 分离出来 plot.setLabelGenerator(new StandardPieSectionLabelGenerator(0(2 percent); /设显示值的样式,0表示 data的KEY 1表示:value ;2表示站圆饼的百分比,17页,2 、柱状图,18页,2.1得到并填充结果集,addValue方法,用來設置默認結果集中值,对象.addValue(参数1,参数2

12、,参数3); 对象.addValue(参数1,参数2,参数3); 对象.addValue(参数1,参数2,参数3); 对象.addValue(参数1,参数2,参数3); 对象.addValue(参数1,参数2,参数3);,dataset.addValue(1, First, Category 1); dataset.addValue(5, second, Category 2); dataset.addValue(3, three, Category 3); dataset.addValue(4, four, Category 4);,得到默認結果集的類,往結果集中添加值,DefaultCat

13、egoryDataset dataset = new DefaultCategoryDataset();,19页,2.2 得到Chart工厂(ChartFactory),chart工厂类方法,方法名:createBarChart 参数:title, 横坐标, 纵坐标, 数据集, PlotOrientation(垂直显示), legend, tooltips, urls,JFreeChart chart = ChartFactory.createBarChart(标题,横坐标,纵坐标,数据集,显示方向,legend, tooltips, urls);,JFreeChart chart = Cha

14、rtFactory.createBarChart(xin, Categry, Value, getDataset(), PlotOrientation.VERTICAL, true, true, true);,20页,2.3、属性,JFreeChart chart = ChartFactory.createBarChart(统计, Categry, Value, getDataset(), PlotOrientation.VERTICAL, true, true, true); CategoryPlot是Plot类的子类,类主要用于描述CategoryDataset数据集合类型的图表,它支持折

15、线图、区域图等,其常用方法及说明: CategoryPlot cgplot = chart.getCategoryPlot(); /设置图表显示背景 cgplot.setBackgroundPaint(Color.blue); /横坐标网格线红色 cgplot.setDomainGridlinePaint(Color.red); /显示为可见 cgplot.setDomainGridlinesVisible(true); /纵坐标网格线红色 cgplot.setRangeGridlinePaint(Color.red); /设置横坐标与纵坐标的显示位置; cgplot.setDomainAxi

16、sLocation(AxisLocation.TOP_OR_RIGHT); cgplot.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);,21页,2.3属性(CateGory和ValueAxis),CategoryAxis类是Axis类的子类,主要用于对分类轴的相关属性进行设置,其常用方法及说明: CategoryPlot cgplot = chart.getCategoryPlot(); /取得横轴 CategoryAxis cAxis = cgplot.getDomainAxis(); / 设置距离图片左、右端距离 cAxis.setLow

17、erMargin(0.05); /距左端的距离 cAxis.setUpperMargin(0.1); /距右端的距离 /设置横柱上Label倾斜45度 cAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); /设置字体 cAxis.setLabelFont(new Font(宋体,Font.BOLD,12); cAxis.setTickLabelFont(new Font(宋体,Font.BOLD,12); cgplot.setDomainAxis(cAxis ); ValueAxis类是Axis类的子类,也是NumberA

18、xis类与DateAxis类的父类,主要用于对数据轴的相关属性进行设置,其常用方法及说明 ValueAxis rangeAxis = plot.getRangeAxis(); /设置最高的一个柱与图片顶端的距离 rangeAxis.setUpperMargin(0.15); /设置最低的一个柱与图片底端的距离 rangeAxis.setLowerMargin(0.15); Cgplot .setRangeAxis(rangeAxis);,22页,2.4属性(NumberAxis),NumberAxis类是ValueAxis类的子类,主要用于对数值类型数据轴的相关属性进行设置,其常用方法及说明: /取得纵轴 NumberAxis nAxis = (NumberAxis) cPlot.getRangeAxis(); /设置横轴标签字体 nAxis.setLabelFont(new Font(宋体,Font.BOLD,12); nAxis.setTickLabelFont(new Font(宋体,Font.BOLD,12); /使纵坐标的最小单位格为整数 nAxis.setStandardTickUnits(NumberAxis.createIntegerTic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论