1.
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,
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引擎本身提供了一个工厂类用于创建不同类型的图表对象.支持多种图形显示方式,不同的方式
由该工厂类长生不同的图形类,同时赋予不同类型的数据集.
创建不同类型的chart,都有一个对应的Plot,在JFreeChart接口中提供了getPlot()通用方式取Plot。也可以用getCategoryPlot().getXYPlot()获取特定类型的Plot
由于CategoryPlot, XYPlot这两种Plot比较常用所以列在了JFreeChart中。如果用getPlot()获取Plot,返回的Plot需要强制类型转换,才能调用具体Plot的特殊方法
通过System.out.println(chart.getPlot());可以得到Plot的类型。Plot的具体类型根据JFreeChart的类型而定。一个chart只有一个Plot。获得了Plot就获得了整个图形的引用
可以plot.getRangeAxis(),plot.getRenderer()来对图形属性进行设置。一个图形可有多个Y轴,多个Renderer,用不带参数的方式plot.getRenderer()。返回的是第一个Renderer。
可以给定参数来返回指定的Renderer。得到的Renderer,RangeAxis被范化的,返回的都父类的类型。要想使用具体子类特殊性的配置,仍然可以用System.out.println(plot.getRenderer());
来查看类型。一种类型的图形对应一个Render,如柱子图形对应BarRenderer。如果一个图片由多个图形组成,(柱子,曲线),默认情况下只给主图形配置一个Render(由JFreeChart类型而定)
也就是说默认情况下Plot中只有一个Renderer。为了配置曲线样式,就需要新建一个Render(LineAndShapeRenderer),赋值给Plot。
2.使用JFreeChart大致的步骤:
a.创建数据集,并往数据集容器中填充数据,不同类型的图形,对应不同的数据集.
b.由JFreeChart工厂创建一个图形引擎,并把数据集交给工厂,
c.设置图形显示的样式.
3.柱状图
柱状图: bar charts (regular and stacked, with an optional 3D effect),用到的主要类如下:
org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
org.jfree.data.category.CategoryDataset:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
org.jfree.chart.plot.CategoryPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
org.jfree.chart.axis.CategoryAxis:用于处理图表的两个轴:纵轴和横轴
org.jfree.chart.render.CategoryRender:负责如何显示一个图表对象
org.jfree.chart.urls.CategoryURLGenerator:用于生成Web图表中每个项目的鼠标点击链接
CategoryToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
org.jfree.chart.axis.ValueAxis:用于处理图表中的柱
获得引擎工厂:
Y轴 一般Y轴为数值,描述对象的特性.,Y轴的显示方式比较固定,一般是按照某一刻度显示一个值轴.
X轴 一般X轴为时间,同时在某个时间点上还有被描述的对象.时间的跨度区域应该由用户自行定制.时间轴上描述的对象也可以由用户自行定制.
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"水果", // 目录轴的显示标签
"产量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
设置数据集(获取一个演示用的组合数据集对象) 如果 dataset.addValue(100, "北京", "苹果")中间参数为Null则为简单的数据集对象.
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(100, "上海", "苹果");
dataset.addValue(100, "广州", "苹果");
dataset.addValue(200, "北京", "梨子");
dataset.addValue(200, "上海", "梨子");
dataset.addValue(200, "广州", "梨子");
dataset.addValue(300, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(300, "广州", "葡萄");
dataset.addValue(400, "北京", "香蕉");
dataset.addValue(400, "上海", "香蕉");
dataset.addValue(400, "广州", "香蕉");
dataset.addValue(500, "北京", "荔枝");
dataset.addValue(500, "上海", "荔枝");
dataset.addValue(500, "广州", "荔枝");
return dataset;
}
4.柄状图
JFreeChart chart = ChartFactory.createPie3DChart("水果产量图", // 图表标题
data,
true, // 是否显示图例
false,
false
);
获得数据集
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("苹果",100);
dataset.setValue("梨子",200);
dataset.setValue("葡萄",300);
dataset.setValue("香蕉",400);
dataset.setValue("荔枝",500);
return dataset;
}
5.设置柱子样式。
CategoryPlot plot = chart.getCategoryPlot();//获得图表区域对象
//设置图表的纵轴和横轴
CategoryAxis domainAxis = plot.getDomainAxis(); // 获得X轴
domainAxis.setLowerMargin(0.1);//设置距离图片左端距离此时为10%
domainAxis.setUpperMargin(0.1);//设置距离图片右端距离此时为百分之10
domainAxis.setCategoryLabelPositionOffset(10);//图表横轴与标签的距离(10像素)
domainAxis.setCategoryMargin(0.2);//横轴标签之间的距离20%
//domainAxis.setMaximumCategoryLabelLines(1);
//domainAxis.setMaximumCategoryLabelWidthRatio(0);
//设定柱子的属性
org.jfree.chart.axis.ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperMargin(0.1);//设置最高的一个柱与图片顶端的距离(最高柱的10%)
//设置图表的颜色
org.jfree.chart.renderer.category.BarRenderer3D renderer;
renderer = new org.jfree.chart.renderer.category.BarRenderer3D();
renderer.setBaseOutlinePaint(Color.red);
renderer.setSeriesPaint(0, new Color(0, 255, 255));//计划柱子的颜色为青色
renderer.setSeriesOutlinePaint(0,Color.BLACK);//边框为黑色
renderer.setSeriesPaint(1, new Color(0, 255, 0));//实报柱子的颜色为绿色
renderer.setSeriesOutlinePaint(1,Color.red);//边框为红色
renderer.setItemMargin(0.1);//组内柱子间隔为组宽的10%
//显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("黑体",Font.BOLD,12));//12号黑体加粗
renderer.setItemLabelPaint(Color.black);//字体为黑色
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);//使用我们设计的效果
//设置纵横坐标的显示位置
plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);//学校显示在下端(柱子竖直)或左侧(柱子水平)
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); //人数显示在下端(柱子水平)或左侧(柱子竖直)
也可以直接用:BarRenderer3D renderer =(BarRenderer3D)yijietiPercent.getCategoryPlot().getRenderer();得到Renderer
6. 设置Y轴刻度
NumberAxis vn=(NumberAxis )yijietiPercent.getCategoryPlot() .getRangeAxis();
vn.setAutoTickUnitSelection(true);
NumberTickUnit nt=new NumberTickUnit(20);
vn.setTickUnit(nt);
我们还可以是将数据格式化以后显示,比如y轴显示百分比(10%~100%),x轴显示为×月×日
NumberFormat nf =NumberFormat.getPercentInstance();
numAxis.setNumberFormatOverride(nf);//设置y轴以百分比方式显示
SimpleDateFormat format = new SimpleDateFormat("MM月dd");
dateaxis.setDateFormatOverride(format);//设置x轴数据单位以×月×日方式显示
7.设置X轴,Y轴字体样式
//重新设置图标标题,改变字体
chart.setTitle(new TextTitle("图书销量统计图", new Font("黑体", Font.ITALIC , 22)));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
//取得横轴
CategoryAxis categoryAxis = plot.getDomainAxis();
//设置横轴
没有合适的资源?快使用搜索试试~ 我知道了~
jfreechart开发文档
共177个文件
gif:56个
js:32个
java:28个
需积分: 10 36 下载量 181 浏览量
2008-10-21
15:33:04
上传
评论
收藏 19.3MB RAR 举报
温馨提示
jfreechart开发文档,资料,以及个人学习笔记和心得。
资源推荐
资源详情
资源评论
收起资源包目录
jfreechart开发文档 (177个子文件)
WebResource.axd 31KB
WebResource(1).axd 21KB
readme.txt.bak 14KB
jFreeChart.CHM 6.14MB
core.css 233KB
forum.css 32KB
blog.css 28KB
blog.css 28KB
common.css 10KB
index.css 7KB
s.css 6KB
style.css 6KB
zaxis.css 6KB
base.css 5KB
index.css 5KB
SyntaxHighlighter.css 2KB
SyntaxHighlighter.css 2KB
SyntaxHighlighter.css 2KB
style.css 2KB
blue.css 2KB
blue.css 2KB
ui.css 2KB
ui.css 2KB
tabber.css 1KB
o.css 1KB
css.css 906B
(JfreeChart.doc 120KB
lotus.gif 14KB
ok1.gif 14KB
itepub_logo_240.gif 4KB
logo.gif 4KB
logo.gif 3KB
PoweredByAsp.Net.gif 3KB
logo_small.gif 2KB
logo_small.gif 2KB
user-logo.gif 2KB
user-logo.gif 2KB
user-logo.gif 2KB
100x30_Logo.gif 2KB
rss_bloglines.gif 1KB
rss_bloglines.gif 1KB
search.gif 1KB
reply.gif 1KB
dot2.gif 1KB
watch.gif 997B
cool.gif 979B
sad.gif 972B
rss_gougou.gif 825B
favorite.gif 814B
rss_bloglines.gif 811B
rss_newsgator.gif 799B
spacer.gif 799B
rss_netvibes.gif 770B
rss_google.gif 748B
ch_opera80x15.gif 724B
rss_zhuaxia.gif 723B
rss_zhuaxia.gif 723B
rss_google.gif 701B
rss_google.gif 701B
offline.gif 682B
offline.gif 682B
offline.gif 682B
rss_pageflakes.gif 588B
rss_yahoo.gif 572B
rss_zhuaxia.gif 568B
feedsky.gif 551B
userstar.gif 453B
xml.gif 429B
ch_valid-xhtml10.gif 420B
ch_powered-php.gif 404B
ch_valid-css.gif 395B
ch_powered-mysql.gif 366B
rss_rojo.gif 358B
back_to.gif 324B
prev.gif 284B
next.gif 284B
xmlrss.gif 204B
bg_line.gif 202B
icon_minigender_1.gif 143B
icon_minigender_1.gif 143B
bg_menu.gif 126B
bg_menu_top.gif 112B
zhuan.gif 101B
JFreeChart完全攻略示例各种方法和属性 - 教程手册-教学文档指南资料-在线阅读下载.htm 81KB
JR 精品文章 - jfreechart应用.htm 50KB
Tomcat下使用Jfreechart 简单例子(servlet) - 我的文章 - zyq 5918.htm 47KB
JFreeChart简要教程 - ebookbug的专栏 - CSDNBlog.htm 44KB
JFreeChart使用 - 其他综合 - New - JavaEye论坛.htm 38KB
JFreeChart中文API - pfwang - JavaEye技术网站.htm 31KB
jfreechart - 只走直线的耗子 - 网易博客.htm 31KB
jfreechart例子 - wyz191 - JavaEye技术网站.htm 23KB
03.htm 13KB
02.htm 8KB
01.htm 6KB
04.htm 5KB
print.htm 5KB
exlink.htm 4KB
comment.htm 3KB
stat.htm 2KB
count.htm 1KB
共 177 条
- 1
- 2
资源评论
qqwjz
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功