2012年4月17日,嘿嘿,公司做到报表问题,结合公司,使用了JFreeChart,自己花了一个上午学习,总结一点出来了,希望能对所有在IT新接触人员有所帮助!
首先,去官方网站:
http://www.jfree.org/jfreechart/ 下载,获取jar
public class Test {
/**
* @author 钟艳明 QQ:962589149
*/
public static void main(String[] args) {
Test test=new Test();
test.disPlay();
test.display2();
test.display3();
test.display4(null);
}
//圆饼形状
public void display4(CategoryDataset dataset)
{
DefaultCategoryDataset cds = new DefaultCategoryDataset();
cds.setValue(20, "英语1", "英语");
cds.setValue(10, "数学1", "数学");
cds.setValue(15, "语文", "语文");
cds.setValue(25, "d", "物理");
cds.setValue(30, "e", "化学");
if(dataset==null)
{
dataset=cds;
}
JFreeChart chart = ChartFactory.createBarChart("课程分布图","课程", "比例", dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();//x轴
ValueAxis numberaxis = plot.getRangeAxis(); //y轴
TextTitle t = chart.getTitle();
t.setFont(new Font("宋体",Font.BOLD,40));//标题文字
domainAxis.setLabelFont(new Font("宋体",Font.BOLD,20));//x轴标题文字
domainAxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//x轴坐标上文字
numberaxis.setLabelFont(new Font("宋体",Font.BOLD,20));//y轴标题文字
numberaxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//y轴坐标上文字
chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,12));//图例文字
ChartFrame frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
frame.pack();
frame.setVisible(true);
}
//保存为图片
public void display3()
{
try{
//初始化数据
double[][] data = new double[][] {{1310, 1220, 1110, 1000},{720, 700, 680, 640},{1130, 1020, 980, 800},{440, 400, 360, 300}};
String[] rowKeys = {"猪肉", "niurou","鸡肉", "鱼肉"};
String[] columnKeys = {"广州", "shenzhen", "东莞", "佛山"};
//创建数据源
CategoryDataset dataset=DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
//创建折线图
JFreeChart chart = ChartFactory.createBarChart3D("全国食物统计","肉类","销量",dataset,PlotOrientation.VERTICAL,true,true,false);
//获取绘图对象
CategoryPlot plot = chart.getCategoryPlot();
//获取X Y轴
CategoryAxis domainAxis = plot.getDomainAxis();
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
//解决标题乱码
chart.getTitle().setFont(new Font("宋体",Font.BOLD,16));
//解决X轴乱码
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
//解决Y轴乱码
numberaxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
//解决底部乱码问题
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));
//图片保存路径
String imageURL ="D://yanming/201200021233.png";
FileOutputStream jpg = null;
jpg = new FileOutputStream(imageURL);
int width=630;
int height=400;
ChartUtilities.writeChartAsPNG(jpg, chart, width,height);
System.out.println("图片创建成功!");
}catch(Exception ex)
{
ex.printStackTrace();
}
}
//第二种显示方式
public void display2()
{
//初始化
double[][] data = new double[][] {{1310, 1220, 1110, 1000},{720, 700, 680, 640},{1130, 1020, 980, 800},{440, 400, 360, 300}};
String[] rowKeys = {"猪肉", "niurou","鸡肉", "鱼肉"};
String[] columnKeys = {"广州", "shenzhen", "东莞", "佛山"};
//创建数据源
CategoryDataset dataset=DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
//创建折线图
JFreeChart chart = ChartFactory.createBarChart3D("全国食物统计","肉类","销量",dataset,PlotOrientation.VERTICAL,true,true,false);
//获取绘图对象
CategoryPlot plot = chart.getCategoryPlot();
//获取X Y轴
CategoryAxis domainAxis = plot.getDomainAxis();
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
//解决标题乱码
chart.getTitle().setFont(new Font("宋体",Font.BOLD,16));
//解决X轴乱码
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
//解决Y轴乱码
numberaxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
//解决底部乱码问题
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));
ChartFrame frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
frame.pack();
frame.setVisible(true);
}
//最简单的一种现实方式,传入的是一个map
public void disPlay()
{
// TODO 自动生成方法存根
DefaultPieDataset dfp=new DefaultPieDataset();
dfp.setValue("管理人员", 25);
dfp.setValue("市场人员", 35);
dfp.setValue("开发人员", 20);
dfp.setValue("后勤人员", 5);
dfp.setValue("财务人员", 15);
//Create JFreeChart object
JFreeChart chart =ChartFactory.createPieChart("CityInfoPort公司组织架构图",dfp, true, true, true);
//解决乱码问题 标题
//乱码解决开始
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体", Font.PLAIN, 20)); //标题文字乱码
PiePlot plot=(PiePlot)chart.getPlot();
plot.setLabelFont(new Font("宋体",Font.BOLD,20));//饼上的文字乱码
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); //图例文字乱码
//乱码解决结束
ChartFrame frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
frame.setFont(new Font("宋体", Font.BOLD, 15));
frame.pack();
frame.setVisible(true);
}
}
下面是效果图
- 大小: 27.2 KB
- 大小: 18.2 KB
- 大小: 5.4 KB
分享到:
相关推荐
本文将分享JFreeChart的使用心得,并提供一个在Web应用下的实际例子。 首先,理解JFreeChart的基本架构至关重要。JFreeChart的核心是`ChartFactory`类,它提供了创建不同类型图表的静态方法。例如,`createBarChart...
### JFreeChart 使用心得 #### 一、JFreeChart 的介绍与获取 JFreeChart 是一个功能强大的开源 Java 图表库,支持多种图表类型,包括但不限于条形图、饼图、雷达图、K线图等。它适用于客户端/服务器 (C/S)、浏览器...
JFreeChart使用详细教程
JFreeChart 使用教程(中文) JFreeChart 是一个功能强大、灵活易用的 Java 绘图 API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在 Swing 和 Web 等中制作自定义的图表或报表...
JFreeChart的使用,需要导入的2个jar文件: jcommon-1.0.23.jar和jfreechart-1.0.19.jar。 可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 上传以作后续使用时备份.
**JFreeChart 使用详解** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如折线图、柱状图、饼图、散点图以及更专业的图表类型,如甘特图和雷达图。在Java应用中,如果你...
**JFreeChart 使用指南** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种图表,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析和报告中。这篇指南将深入探讨如何有效地使用...
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够 用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
### JFreeChart使用总结 #### 一、JFreeChart简介 JFreeChart是一个强大的Java图表绘制库,由JFree组织开发并维护。该库提供了一系列丰富的API,支持开发者创建多种类型的图表,包括但不限于饼图、柱状图、线图、...
在使用JFreeChart时,通常会依赖两个核心的jar文件:`jfreechart.jar`和`jcommon.jar`。 1. `jfreechart.jar`: 这是JFreeChart的主要库文件,包含了所有用于创建、定制和展示图表的类和方法。你可以通过这个包来...
**JFreeChart 使用详解** JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图等,广泛应用于数据可视化和报告生成。在本篇文章中,我们将深入探讨如何使用...