JFreeChart是基于Java平台的免费的图表库.它运行在java2(JDK 1.2.2或更高版本)平台上,并且使用Java 2D API进行制图。最新的版本是jfreechart-1.0.0-rc1,可以从http://www.jfree.org/jfreechart/下载到
1.介绍
JFreeChart是基于Java平台的免费的图表库.它运行在java2(JDK 1.2.2或更高版本)平台上,并且使用Java 2D API进行制图。最新的版本是jfreechart-1.0.0-rc1,可以从http://www.jfree.org/jfreechart/下载到。
2.文档
可以从其网站上(http://prdownloads.sourceforge.net/jfreechart/jfreechart-1.0.0-rc1-install.pdf?download)下载到它的安装文档(jfreechart-1.0.0-rc1-install.pdf)。
JFreeChart的API文档http://www.jfree.org/jfreechart/javadoc/,如果想在本地保存一份的话,一种方法是利用javadoc或者gcjdoc工具直接从源代码中生成,还有一种方法是使用Ant脚本(Build.xml).
遗憾的是,JFreeChart的开发文档(the JFreeChart Developer Guide)是需要付费的(US$39.95),也许这就是关于JFreeChart的文章比较少的原因吧。
3.依赖的包
(a) JDK 1.2.2或者更高版本.
(b) JCommon - version 1.0.0-pre2 or later.
(c) GNU JAXP
(d) servlet.jar
(e) JUnit
除(a)外, 都可以在JFreeChart的jar包里面找到.
4.安装
5.通过一个简单的例子,让我们看看JFreeChart是如何方便的生成我们想要的饼图的.
package tracy.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class PieChart {
public void drawToFile(){
//设置数据集
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("冰箱", 1800);
dataset.setValue("电视", 1600);
dataset.setValue("空调", 3300);
dataset.setValue("洗衣机", 2000);
dataset.setValue("DVD", 400);
//通过工厂类生成JFreeChart对象
JFreeChart chart = ChartFactory.createPieChart3D("家电投资比例示意图", dataset, true, false, false);
//写图表对象到文件
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:pi.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}
}
运行后如下图:

6.设置显示方式
上一篇只是对Jfreechart做了一个介绍,下面我们来深入探讨Jfreechart的设置,随心所欲得到我们想要的图表。
(本文列出的例子是对前文例子的修改,所以请大家在阅读本文之前,先阅读前面的一篇.)
一. 加个副标题
chart.addSubtitle(new TextTitle("2005年度"));

二.对图表显示方式的设置
这就要借助Plot了,对于饼图的设置,有相应的PiePlot,得到其对象的方法:
PiePlot pie = (PiePlot)chart.getPlot();
下面通过几个例子,说明PiePlot的几个常用方法,是如何控制chart发生变化,达到我们预期效果的.
1. 将指定section的轮廓线设置成白色
plot.setSectionOutlinePaint(1, Color.WHITE);

2. 设置饼图是圆的(true),还是椭圆的(false);默认为true
plot.setCircular(false);
plot.setExplodePercent(0, 0.2);

三.百分率问题
什么是百分率问题?
默认状态下,标签和图例显示的是"关键字=数值"的格式。如果我们想标出每个section所占的百分率,那怎么做呢?我想在显示数值的同时,显示单位,又该怎么做呢?
这个问题,还是要借助Plot,只是这是一个大家经常遇到的一个问题,所以单独讨论。
设置标签使用setLabelGenerator(PieSectionLabelGenerator generator)方法,设置图例使用setLegendLabelGenerator(PieSectionLabelGenerator generator)方法
//显示格式设置成DEFAULT_TOOLTIP_FORMAT:"{0}: ({1}, {2})"
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}: ({1}, {2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.0%")));

//标签显示格式设置成{0}={2}
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={2}", NumberFormat.getNumberInstance(), new DecimalFormat("0.0%")));

//图例显示格式设置成{0}: ¥{1},加上单位,更加清楚数值的含义
plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}: ¥{1}"));

这里{0}表示"关键字",{1}表示"数值",{2}表示"百分率"
声明:JFreeChart版本修订过程中,类结构出现相当大的变化,本文仅针对jfreechart-1.0.0.
3.
突出某一部分,及设置间隔距离.注意此方法仅对2D饼图有效,3D无效
相关推荐
**JFreeChart 图表应用详解** JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图、时间序列图等,使得开发者能够方便地在应用程序中生成高质量的图形...
这个库广泛应用于各种需要数据可视化的场景,如报告、应用界面、网页或者桌面应用程序。它支持多种图表类型,包括但不限于: 1. **树状图(Tree Maps)**:这是一种特殊的数据可视化方式,用不同大小的矩形来表示...
JFreeChart 是由 David Gilbert 开发的,它允许开发者在 Java 应用程序、Swing 组件、Web 应用程序以及服务器端生成高质量的图表。这个库不仅支持静态图表,还支持动态和交互式图表,使得数据可视化变得更加生动和...
使用JFreeChart来创建基于web的图表需要准备好开发环境,包括Servlet引擎或者J2EE应用服务器(例如WebSphere、Tomcat等)。在搭建WEB环境时,需要安装JFreeChart引擎,并将其配置到项目中。 在使用JFreeChart生成...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而JFreeChart和IText是两个强大的库,...通过熟练掌握这两个库的使用,开发者可以更高效地创建交互式和可下载的Web应用程序,提高用户体验。
在Spring框架中,我们可以利用其灵活的依赖注入和AOP(面向切面编程)特性,将图表生成的服务以组件的形式融入到应用程序中。 集成JFreeChart到Spring应用中,首先需要引入JFreeChart的库文件,这通常通过Maven或...
5. **绘制和展示**:将图表渲染到组件,如 `JFreeChart.createBufferedImage()` 或 `ChartPanel`,然后添加到 Swing 应用程序的容器中。 **三、关键类和方法** 1. **ChartFactory**:提供如 `createLineChart()`, ...
5. **保存或展示图表**:将生成的图表保存为图像文件,或者直接在应用程序中展示。 #### 示例:绘制柱状图 以下是一个简单的示例,展示如何使用JfreeChart绘制一个基本的柱状图: 1. **获取JfreeChart库**:首先...
本文档旨在为开发者提供详细的JFreeChart开发指南,涵盖安装、配置到图表创建和自定义等各个方面。此外,还包含了一些示例代码和最佳实践,以帮助开发者更好地理解和使用JFreeChart。 ##### 1.3 致谢 感谢所有为...
总之,JFreeChart 是一个强大且灵活的图表库,适合用于Java应用程序和Web应用中,展示数据和进行可视化分析。通过学习和实践这个 demo,开发者能够更好地掌握 JFreeChart 的使用技巧,提升项目中的数据呈现能力。
**JFreeChart**是一款功能强大的Java图形开发类库,它允许开发者轻松地在应用程序、Applet、Servlet以及JSP页面上生成各种类型的图表。这款类库是完全开源的,并且严格遵守GNU的通用公共许可证(GPL),确保了用户对...
它为开发者提供了丰富的功能,使得在Java应用程序、Web应用或者报告中集成图表变得简单。这份资源包含`jfreeChart1.0.9`版本的完整开发文档,包括收费使用手册、API文档以及示例代码,对于任何想要深入理解和使用...
**JFreeChart开发指南** **JFreeChart** 是一款基于Java的开源图形库,它提供了丰富的图表类型,如饼图、柱状图、折线图、散点图、时序图、甘特图、仪表盘图、混合图、symbol图和风力方向图等,用于在应用程序、...
- **定义**:JFreeChart是一款开源的Java图形开发库,主要用于在应用程序、Applets、Servlets、JSP页面等环境中生成各种图表。 - **开源许可**:JFreeChart严格遵循GNU通用公共许可证,保证了用户对源代码的自由使用...
- `jfreechart-1.0.13-swt.jar`:这个版本包含了对Eclipse SWT(Standard Widget Toolkit)的支持,使得JFreeChart能在SWT应用程序中使用。 - `jfreechart-1.0.13-experimental.jar`:这个版本包含了一些实验性的...
《JFreeChart开发指南》是针对Java开发者的一本宝贵资源,尤其对于那些希望在应用程序中创建高质量图表的开发者来说更是如此。JFreeChart是一个开源的Java库,它提供了丰富的图表类型,包括饼图、柱状图、线图、散点...
### Java报表JFreeChart开发知识点总结 #### 1. 简介 ##### 1.1 什么是JFreeChart JFreeChart是一款免费且开源的Java图表库,它提供了多种类型的图表绘制功能,如饼图、条形图、折线图等。JFreeChart适用于各种Java...
这个组件使得在Java应用程序中生成各种类型的图表变得极其简单,包括折线图、柱状图、饼图、散点图、甘特图等。版本v1.0.12是JFreeChart的一个稳定版本,提供了一系列增强的功能和修复了已知的问题。 ### ...
通过这篇中文开发指南,开发者可以深入理解JFreeChart的核心概念,熟练掌握图表的创建、定制和输出,进一步提升Java应用程序的数据可视化能力。在实际项目中,结合JFreeChart的灵活性和丰富功能,可以创造出满足各种...