首先从http://jfreechart.org官方中获取最新版本插件(本例采用版本jfreechart-1.0.13)
第一步:将所需要的jar包放入到lib目录底下(jfreechart-1.0.13.jar,jfreechart-1.0.13-experimental.jar,jcommon-1.0.16.jar )
第二部:创建树状图
新建JFreeCharatTest类
package org.cxg.jfreechart;
import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
public class JFreeCharatTest extends ApplicationFrame {
public JFreeCharatTest(String title){
super(title);
this.setContentPane(createPanel());
}
//创建数据集
public static CategoryDataset createDataset(){
//创建树状图数据集实例
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(10, "", "管理人员");
dataset.setValue(20, "", "市场人员");
dataset.setValue(40, "", "开发人员");
dataset.setValue(15, "", "其他人员");
return dataset;
}
//创建图标对象
public static JFreeChart jFreeCharat(CategoryDataset dataset){
JFreeChart jFreeCharat = ChartFactory.createBarChart("某公司组织结构图", "人员分别", "人员数量", dataset, PlotOrientation.HORIZONTAL, false, true, true);
//从新设置标题自己...此操作也可以不做
jFreeCharat.setTitle(new TextTitle("某公司组织结构图", new Font("微软雅黑",Font.BOLD,12)));
//下面代码可以不写.它的作用是设置横坐标的字体
/*//创建图表对象
CategoryPlot plot = (CategoryPlot)jFreeCharat.getPlot();
//得到数据范围,获得横坐标
CategoryAxis axis = plot.getDomainAxis();
//设置横坐标的字体
axis.setLabelFont(new Font("微软雅黑", Font.BOLD, 12));*/
return jFreeCharat;
}
//将整个图标放到JPanel中
public static JPanel createPanel(){
JFreeChart chart = jFreeCharat(createDataset());
return new ChartPanel(chart);
}
public static void main(String[] args) {
JFreeCharatTest test = new JFreeCharatTest("某公司组织结构图");
//调整窗口大小
test.pack();
test.setVisible(true);
}
}
/**
* 基本思路
* 1.首先通过createDataset()方法创建数据集.并将对象返回
* 创建数据集需要DefaultCategoryDataset实例进行创建
* 2.通过jFreeCharat()方法创建整个图表对象(即JFreeChart实例)
* 通过ChartFactory工厂类创建 ChartFactory.createBarChart("....");
* 里面有8个参数
* 第一个表示 标题
* 第二个表示 横坐标的名称
* 第三个表示 纵坐标的名称
* 第四个表示 数据集对象
* 第五个表示 树状头的位置 (垂直:PlotOrientation.VERTICAL 和 水平:PlotOrientation.HORIZONTAL)
* 第六个表示 是否产生图例说明
* 第七个表示 是否产生提示
* 第八个表示 是否产生URL
* 3.通过createPanel()方法讲图表对象放入JPanel中,(注意:JFreeChart为我们提供了一个ChartPanel类,我们只需实例化讲图表对象传入)
* 4.继承ApplicationFrame类.调用父类构造方法把左上角的标题传入,并讲JPanel对象this.setContentPane(JPanel对象)方法中.
* 5.main方法进行测试
*
*
*/
在JAVASE创建饼图并生成图片
package org.cxg.jfreechart;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
public class JFreeCharatTest2 {
public static void main(String[] args) throws Exception {
//创建饼图对象
JFreeChart charat = ChartFactory.createPieChart("某公司组织结构图",defaultPieDataset(),true,false,false);
charat.setTitle(new TextTitle("某公司组织结构图", new Font("微软雅黑",Font.BOLD,12)));
//LegendTitle title = charat.getLegend(0);
OutputStream output = new FileOutputStream("abc.jpeg");
//输出图标.变为一张图片
ChartUtilities.writeChartAsJPEG(output, charat, 1000, 800);
output.close();
}
//创建饼图数据集
private static DefaultPieDataset defaultPieDataset(){
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("管理人员", 25);
dataset.setValue("市场人员", 25);
dataset.setValue("开发人员", 45);
dataset.setValue("其他人员", 10);
return dataset;
}
/**
* 1. 首先通过DefaultPieDataset()方法创建饼图数据集(注意: 创建饼图数据集的类为DefaultPieDataset)
* 2. 在main方法中创建饼图对象,并通过输出流(OutputStream)创建一张jpg的图片
* 3. 通过JFreeChart提供的ChartUtilities.writeChartAsJPEG(output, charat, 1000, 800);方法将类容写入到图片中
* 第一个参数表示 输出流对象
* 第二个参数表示 饼图对象
* 第三个和第四参数表示 图片宽度和高度
* 执行main方法后,会在项目的根目录下生成一张图片,刷新项目就可以看到
*/
}
在javaWEB中生成饼图并生成图片
<%
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("管理人员", 25);
dataset.setValue("市场人员", 25);
dataset.setValue("开发人员", 45);
dataset.setValue("其他人员", 10);
JFreeChart charat = ChartFactory.createPieChart3D("某公司组织结构图",dataset,true,false,false);
String fileName = ServletUtilities.saveChartAsPNG(charat,1000,800,session);
String url = request.getContextPath() + "/DisplayChart?filename=" + fileName;
%>
<img src="<%=url %>" width="1000" height="800">
<!--
这里只需要注意生成URL的/DisplayChart?filename= 为固定不变的.后面为生成图片的名称
-->
分享到:
相关推荐
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、 散点图...
jfreechart图表demo,带有maven依赖。
JFreeChart图表设计(附源码),手把手教你从零开始学习JFreeChart图表设计.
jfreechart生成各种图表 柱状 饼状 折线 锥状
jfreechart图表教程-- jfreechart图表教程-- jfreechart图表教程
jfreechart图表工程,可以导入测试,包含饼图和柱状图
jfreechart图表所需的jar包: jcommon-1.0.17 jfreechart-1.0.14 jfreechart-1.0.14-experimental jfreechart-1.0.14-swt
通过freemarker,实现word模板中占位符的赋值以及赋值后的word文档生成。通过jfreechart生成柱状图和饼图,并在word文档中显示。
JFreeChart 图表制作工具 3D图表制作工具 3D饼制作工具
本文档主要讲述的是使用 JFreeChart来创建基于web的图表;JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、...
java图表 包括JFreeChart使用
使用JfreeChart创建柱状图,折线图,饼图,堆积柱状图,时间序列图,二维Y轴坐标图.自己把自己整理的所有笔记和代码全都分享出来,希望大家在做图表的时候,不至于因为JfreeChart丑就不采用。
NULL 博文链接:https://xdoc.iteye.com/blog/1468003
本资源整合了JFreeChart生成图表代码,饼形图、柱形图、折线图,并附上本人的整理笔记,希望对大家有帮助
jfreechart 图表制作组件,柱状图,完整的程序,有数字,有透明度
JFreechart图表实例.doc 有各个不同表的实例包括 饼状图,柱状图,时间曲线图,线图等。
JSP中使用使用JFreeChart生成各种图表,例如饼形图,柱形图;并使用IText生成PDF文档
Struts2整合JFreeChart图表,可以显示柱状、饼状、折线型、时间顺序图等
信息查询系统-- 实现功能:JFreeChart图表分析,分页,验证码,下载 excle表单...等
JFreechart图表设计教程与实例,包含实例