- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jfreechar方法详解
JFreeChart 学习
关键字: jfreechart
jfreechart目前最高版本为1.0.0版(/jfreechart/index.html)。可以绘制
pie charts 饼图,bar charts 柱状图,line and area charts曲线图,scatter plots and bubble charts 散列图,time series 时序图,Area Charts区域图,Difference Chart差异图,Step Chart步骤图,Multiple Axis Charts 混合图,Gantt charts甘特图,combination charts 复合图
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:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
对于常用的饼图阖柱状图,比较简单而且网上有很多的文章介绍,在这里就不再一一复述了,
(可以参考这篇文章/developerworks/cn/java/l-jfreechart/index.html?ca=dwcn-iscme=ccid)
主要说明下另一种常见的报表,时序图,首先声明一个曲线数据集合对象和曲线对象
TimePeriodValuesCollection timeseriescollection = new TimePeriodValuesCollection();
//声明具体是曲线对象,(可根据实际情况在同一张图中显示多条曲线进行数据比对,根据实际应用情况当超过4条曲线时,就会有些乱。)
TimePeriodValues timeperiod1 = new TimePeriodValues(服务器A在线用户数量);
TimePeriodValues timeperiod2 = new TimePeriodValues(服务器B在线用户数量);
我在使用TimeSeriesCollection tsc = new TimeSeriesCollection();
TimeSeries ts = new TimeSeries();
在生成数据集时(ts.add(new Day(day, month, year),10)))只能生成最小单位为天的横轴所以改用了TimePeriodValuesCollection
//根据当前时间取得横轴坐标,时间间隔为1小时
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
//这里改为根据自己程序得到的需要显示的时间点和对应的数据的集合;
List objectList1 = dao.getList1();
List objectList2 = dao.getList2();
//使用循环,把x轴,y轴的值赋给timeseries1
for (int i =0;iobjecthash1.size();i++) {
??? int hour = objecthash1[i].getHours();
??? int count = objecthash1[i].getCount();
?//将每一对数据(时间,数值)添加到数据集合1(曲线对象1)中
??? timeseries1.add(new Hour(
文档评论(0)