- 浏览: 307029 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lzy.je:
期待FSF的!1985.10成立到现在GNU有多少大牛的项目数 ...
改变IT世界的11大Apache开源技术 -
dotaking:
7、8不了解
改变IT世界的11大Apache开源技术
3 数据源处理
JFreeChart 中的数据源是DataSet接口类型。该接口有三个主要的子类接口:CategoryDataset、PieDataset、SeriesDataset
CategoryDataset 接口的实现类基本上都维护了一个三元组<value,row,col>的列表结构。不同的实现类中value 的类型不相同。<row,col>唯一确定一个三元组。CategoryDataset的实现类提供对这个三元组的增删改查操作。
PieDataset 接口有两个主要的实现类:CategoryToPieDataset 、DefaultPieDataset。PieDataset接口的实现类基本上都维护了一个二元组<key,value>的列表结构。Key唯一确定一个二元组。CategoryDataset的实现类提供对这个二元组的增删改查操作。CategoryToPieDataset中的二元结构列表通过对CategoryDataset类型的对象指定行或者列转化过来。DefaultPieDataset直接维护一个二元结构列表。
SeriesDataset 接口的实现类基本上都维护了一种特定数据结构的列表。以TimeSeriesCollection为例。它维护一个TimeSeries对象列表,提供对该列表的增删查操作。每个TimeSeries对象维护一个<time,value>列表,提供对该列表的增删改查操作。
三 JFreeChart 中对常见图形的处理
JFreeChart 并不存在多个不同的类来生成不同的图形。所有的图形都是具体类 JFreeChart 的实例化对象,初始化 JFreeChart 对象的时候通过指定不同的 Plot 实现类就可以显示出不同的图形。不同的 Plot 实现类具有不同的 Renderer 对象、 Axis 对象、 Dataset 对象。
JFreeChart 提供工厂类 ChartFactory 方便使用者生成各种不同的图形。 ChartFactory 类的各个工厂方法中实现对具体 Plot 的指定以及对类 JFreeChart 构造函数的调用。
下面以常用图形说一下常用的使用流程(大部分的操作讲的并不全面,比如 JFreeChart 可能提供了很多增加、修改数据的方式,下文中可能只列举一种)。
1 柱状图
( 1 )平面柱状图
生成柱状图操作:
JFreeChart chart = ChartFactory.createBarChart(
String title, // 图标题
String categoryAxisLabel, //x 轴标题
String valueAxisLabel, //y 轴标题
CategoryDataset dataset, // 数据源
PlotOrientation orientation, // 显示方向
boolean legend, // 是否显示图例
boolean tooltips, // 是否显示 tooltip
boolean urls) ; // 是否指定 url
平面柱状图的 Plot 对象是 CategoryPlot 类型。 CategoryPlot 对象的 x 轴是 CategoryAxis 对象, y 轴是 NumberAxis 对象,绘制单元是 BarRenderer 对象,数据源是 CategoryDataset 对象。
获取 CategoryPlot 对象操作为:
CategoryPlot plot = ( CategoryPlot ) chart.getPlot(); 或者
CategoryPlot plot = chart.getCategoryPlot();
获取绘制单元操作:
BarRenderer renderer = (BarRenderer) plot.getRenderer();
获取 x 轴的操作:
CategoryAxis xAxis = ( CategoryAxis ) plot.getDomainAxis();
获取 y 轴操作:
NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
获取数据源:
CategoryDataset dataset=plot.getDataset();
柱状图可以接受一切 CategoryDataset 类型的数据源,下面讲解一下常用的 CategoryDataset 类型 DefaultCategoryDataset 的使用方式
实例化:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
增加数据
dataset .addValue(double value, Comparable rowKey, Comparable columnKey) ;
删除数据:
dataset .removeValue(Comparable rowKey, Comparable columnKey);
或者
dataset. removeColumn(int columnIndex);
或者
dataset. removeColumn(Comparable columnKey);
对行同样有上述两种删除方式,不在列举。
修改数据:
dataset. setValue(double value, Comparable rowKey, Comparable columnKey);
查询数据 :
对 plot 对象、绘制单元、 x 轴、 y 轴的显示特性修改不再一一介绍。
( 2 ) 3D 柱状图
对应的工厂方法为 createBarChart3D ,该方法的参数与平面柱状图相同。 3D 柱状图的 Plot 对象是 CategoryPlot 类型。 CategoryPlot 对象的 x 轴是 CategoryAxis3D 对象, y 轴是 NumberAxis3D 对象,绘制单元是 BarRenderer3D 对象,数据源是 CategoryDataset 对象。
具体使用以及操作与平面柱状图雷同,不在详述。
2 饼状图
(1) 平面饼状图
生成平面饼状图:
JFreeChart chart = ChartFactory. createPieChart(String title, // 图标题
PieDataset dataset, // 数据源
boolean legend, // 是否显示图例
boolean tooltips, // 是否显示tooltip
boolean urls) ; // 是否指定url
平面饼状图的Plot对象是PiePlot类型。PiePlot对象没有x轴对象、y轴对象、绘制单元对象,数据源是PieDataset对象。
获取PiePlot对象操作为:
PiePlot plot = (PiePlot) chart.getPlot();
获取数据源:
PieDataset dataset= plot .getDataset();
饼状图可以接受一切 PieDataset 类型的数据源,下面讲解一下常用的 PieDataset 类型 DefaultPieDataset 的使用方式
实例化:
DefaultPieDataset dataset = new DefaultPieDataset();
增加修改操作:
dataset. setValue(Comparable key, double value);
删除操作:
dataset. remove(Comparable key);
查询操作:
dataset. getKey(int item);
或者
dataset. getValue(int item);
(1)3D 饼状图
对应的工厂方法为 createPieChart3D ,参数与平面饼状图相同。与平面饼状图的差别在于 Plot 对象是PiePlot3D类型 ,不再详述。
3 多重饼状图
( 1 )多重平面饼状图
生成多重平面饼状图:
JFreeChart chart = ChartFactory. createMultiplePieChart
(String title, // 图标题
CategoryDataset dataset, // 数据源
TableOrder order, // 指定提取数据的方式(按行或者按列)
boolean legend, // 是否显示图例
boolean tooltips, // 是否显示 tooltip
boolean urls) ; // 是否指定 url
多重平面饼状图的 Plot 对象是 MultiplePiePlot 类型。 MultiplePiePlot 对象没有 x 轴对象、 y 轴对象、绘制单元对象,数据源是 CategoryDataset 对象。 MultiplePiePlot 对象中可以含有多个子 JFreeChart 对象,子 JFreeChart 对象是上面讲过的饼状图对象。
获取 MultiplePiePlot 对象操作为:
MultiplePiePlot plotMain = (MultiplePiePlot) chart.getPlot();
获取子 JFreeChart 的操作为:
JFreeChart childChart=plotMain.getPieChart();
获取数据源:
CategoryDataset dataset= plotMain .getDataset();
( 2 )多重 3D 饼状图
对应的工厂方法为 createMultiplePieChart3D ,该方法的参数与 多重平面饼状图 相同。 多重 3D 饼状图的 Plot 对象是 MultiplePiePlot 类型。 MultiplePiePlot 对象中可以含有多个子 JFreeChart 对象,子 JFreeChart 对象是上面讲过的 3D 饼状图对象。
4 线图
( 1 )平面线图
生成平面线图:
JFreeChart chart = ChartFactory. createLineChart(String title, // 图标题
String categoryAxisLabel, //x 轴标题
String valueAxisLabel, //y 轴标题
CategoryDataset dataset, // 数据源
PlotOrientation orientation, // 显示方向
boolean legend, // 是否显示图例
boolean tooltips, // 是否显示 tooltip
boolean urls); // 是否指定 url
平面线图除了的 Plot 对象中绘制单元对象是 LineAndShapeRenderer 对象,其他一切组成对象与平面柱状图相同。
获取 Renderer 操作:
LineAndShapeRenderer renderer=(LineAndShapeRenderer) plot.getRenderer();
其他参考平面柱状图。
( 2 ) 3D 线图
对应工厂方法为 createLineChart3D ,参数与 createLineChart 相同。 3D 线图的组成对象除了绘制单元对象是 LineAndShapeRenderer3D 对象,其他一切组成对象与 3D 柱状图相同。
5 时序图
生成时序图:
JFreeChart chart = ChartFactory.createTimeSeriesChart(
String title, // 图标题
String timeAxisLabel, //x 轴标题
String valueAxisLabel, //y 轴标题
XYDataset dataset, // 数据源
boolean legend, // 是否显示图例
boolean tooltips, // 是否显示 tooltip
boolean urls); // 是否指定 url
时序图的 Plot 对象是 XYPlot 类型。 XYPlot 对象的 x 轴是 DateAxis 对象, y 轴是 NumberAxis 对象,绘制单元是 XYLineAndShapeRenderer 对象,数据源是 XYDataset 对象。
Plot 对象的获取操作:
XYPlot plot = (XYPlot) chart.getPlot();
X 轴对象的获取操作:
DateAxis xAxis = (DateAxis) plot.getDomainAxis();
Y 轴对象的获取操作:
NumberAxis yAxis =(NumberAxis) plot.getRangeAxis();
Renderer 对象的获取操作:
XYItemRenderer renderer= plot.getRenderer();
时序图可以接受一切 XYDataset 类型的数据源,下面讲解一下常用的 XYDataset 类型 TimeSeriesCollection 的使用方式。
实例化:
TimeSeriesCollection dataset=new TimeSeriesCollection();
添加数据操作:
dataset. addSeries(TimeSeries); // 后面讲解 TimeSeries 对象
删除数据操作:
dataset. removeSeries(int index);
查询数据操作 :
dataset. getSeries(int series);
TimeSeries 对象操作
实例化:
TimeSeries ts=TimeSeries(String name, Class timePeriodClass);
增加数据操作:
ts. add(RegularTimePeriod period, double value);
删除数据操作:
ts. delete(RegularTimePeriod period);
修改数据操作:
ts. update(RegularTimePeriod period, Number value);
查询数据操作:
ts. getValue(RegularTimePeriod period);
类 RegularTimePeriod 是 JFreeChart 提供的时间模板类,它有很多具体的时间类,比如: Minute 、 Second 、 Hour 、 Day…… 等,不再详述。
发表评论
-
改变IT世界的11大Apache开源技术
2009-09-28 08:53 1491据国外媒体报道,转眼之间,Apache软件基金会已经成立1 ... -
批量替換
2009-01-23 13:01 716DECLARE @fieldtype sysnameSET @ ... -
一篇关于web.xml配置的详细说明
2007-09-04 01:19 729一篇关于web.xml配置的详细说明 (来源于:http: ... -
打印web页面的指定区域
2009-03-12 11:34 1035打印web页面的指定区域 第一种方法:使用CSS,定义一个.n ... -
jspSmartUpload 学习
2009-03-12 18:06 792一、安装篇 jspSmartUpload是由www.js ... -
统计访问量
2009-04-02 10:13 951统计访问量 监听 ... -
视频总结-servlet高级开发
2009-04-02 10:16 764视频总结-servlet高级开发 ... -
POI 关于对 ms word的读写代码
2009-05-14 18:09 1100POI 关于对 ms word的读写代码 关键字: poi ... -
log4j最佳配置备份
2009-05-22 11:15 922Xml代码 <?xmlversion="1. ... -
jsp 生成 图片验证码
2009-06-03 10:45 841务必注意:在比较用户输入的验证码时,需要获取系统生成的验证码, ... -
SSH协议
2009-06-05 17:05 1285[编辑] 历史 最初的 SSH ... -
单点登录
2009-06-05 17:10 889单点登录SSO(Single Sign-O ... -
CAS构建和实现单点登录解决方案
2009-06-05 17:21 1439... -
单点登录解决方案
2009-06-05 17:58 815方案概述 现代企业的信息化建设越来越完善,各种电子邮件系统 ... -
单点登陆的概念
2009-06-08 11:16 798单点登陆的概念 单点登陆的概念: 当一个大系统中存在 ... -
单点登录系统SSO原理
2009-06-08 11:28 938单点登录系统SSO原理 本文以某新闻单位多媒体数 ... -
单点登录sso的定义
2009-06-08 11:58 718单点登录sso的定义 单点登录(Single Sign O ... -
JSP获取真实IP地址
2009-06-09 15:31 791在JSP里,获取客户端的IP地址的方法是:request.ge ... -
JFreeChart API说明
2009-06-22 11:28 859JFreeChart类:void setAntiAlias(b ... -
正则表达式在JAVA中的应用
2009-06-22 13:56 829众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字 ...
相关推荐
一、jFreeChart产生图形的流程 创建一个数据源(dataset)来包含将要在图形中显示的数据>>创建一个 JFreeChart 对象来代表要显示的图形 >>把图形输出
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
JFreeChart是一款开源的、功能强大的统计图生成工具,可以直接生成PNG、JPG等各式的文件,它实现了动态数据图形的完美结合,它是纯java的一个开发包,不仅能够实现饼图,柱状图,堆栈拄状图,线图等常规图形,而且能...
java制作jfreechart柱状图 饼状图 折线图 随机数字做的数据源 下载导入即可运行 内含jar包
//设置数据源 while(rs.next()){ String dq=rs.getString("dq"); dataset.setValue(area[i],Integer.parseInt(dq)); //添加数据,参数包括名称和数值 i++; } rs.close(); sql.close(); con.close(); ...
void setAutoRangeStickyZero(boolean flag) 是否强制在整个数据轴中包含0,即使0不在数据范围中 void setNumberFormatOverride(NumberFormat formatter) 数据轴数据标签的显示格式 void setTickUnit(NumberTickUnit...
jFreeChart封装标签(源码),直接在jsp页面上即可使用。使用时带入数据源、图表类型、颜色……生成你想要的图表。非常方便,前端设计都可以直接调用。
TouPiaoDatasets对象中的各个静态方法获取保存在application中的投票数据,并生成各个图表需要用到的数据集。 TouPiaoJFreeChartFactory对象使用TouPiaoDatasets对象中的相应数据集生成各种图表对象。 在...
免费的数据统计插件,能生成各类报表如柱图,圆图等等 源代码
(创建一个数据源(dataset)来包含将要在图形中显示的数据) 2、建立JFreeChart。将dataset中的数据导入到JFreeChart中。(创建一个 JFreeChart 对象来代表要显示的图形 ) 3、设置JFreeChart的显示属性。这一
TouPiaoDatasets对象中的各个静态方法获取保存在application中的投票数据,并生成各个图表需要用到的数据集。 TouPiaoJFreeChartFactory对象使用 TouPiaoDatasets对象中的相应数据集生成各种图表对象。 ...
JFreeChart是“开放源代码”,或更具体地说,是免费软件。 它是根据GNU较小通用公共许可证(LGPL)的条款分发的,该许可证允许在专有应用程序中使用。 Model-View-Controler软件架构模式 模型-视图-控制器(MVC)...
1.系统采用 ssh架构,便于维护和扩展. 2.系统 wizard方案,供参与人员作答,避免用户反感,界面更加友好. ...0.使用 RoutingDatasource + token对数据源路由,实现分库处理,有效降低数据 库存储压力.
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。...在使用iReport开发过程中会遇到各种问题,现提供iReport-4.0.2.jar的源代码包让大家在调试时更容易定位问题。
使用java语言,以图表的方式展示统计处理后的数据。数据源为xml格式的文件。界面优美! 主要涉及java读取解析xml、JFreechart图表展示、大数据处理。 项目工程为myeclipse 9的工程文件。
分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能数据处理技术、...
在B/S架构下基于MVC模式设计开发了稠油热采一体化数据管理系统,运用Oracle数据库技术集成多种数据源建立了统一的数据库平台,综合利用JSP动态网页编程技术、JFreeChart图表绘制技术、POI报表生成技术及MapXtreme...
分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能数据处理技术、...
分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高能数据处理技术、文件...
常用jar包大全apache-maven-3.1.1/C3P0数据源/commons-fileupload-1.3.3-bin/Hibernate3/jfreechart-1.0.19/JSON/JSR303验证框架/MyBaits/MyEclipse反编译插件/quartz-1.8.6/shiro/Spring3/Struts2/数据库驱动/其他...