jfreechart

生成饼状图


 1 package com.kite.jfreechart;
2
3 import java.awt.Font;
4 import java.awt.Image;
5 import java.io.File;
6 import java.io.IOException;
7
8 import javax.imageio.ImageIO;
9
10 import org.jfree.chart.ChartFactory;
11 import org.jfree.chart.ChartUtilities;
12 import org.jfree.chart.JFreeChart;
13 import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
14 import org.jfree.chart.plot.PiePlot;
15 import org.jfree.chart.plot.Plot;
16 import org.jfree.data.general.DefaultPieDataset;
17 import org.junit.Test;
18
19 /**
20 * 饼状图
21 */
22 public class App
23 {
24
25 public static void main(String[] args) throws Exception
26 {
27 String title = "各大公司的J2EE AS市场占有率统计";
28 DefaultPieDataset ds = new DefaultPieDataset();
29 ds.setValue("IBM", 2000);
30 ds.setValue("ORACLE", 3000);
31 ds.setValue("JBOOS", 4000);
32 ds.setValue("用友", 5000);
33
34 //创建jfreechart
35 JFreeChart chart = ChartFactory.createPieChart3D(title, ds, true, false, false);
36
37 //处理中文问题 大标题
38 chart.getTitle().setFont(new Font("宋体", Font.BOLD, 25));
39 chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 20));
40
41 //绘图区
42 PiePlot plot = (PiePlot) chart.getPlot();
43 //设置绘图区中标签的字体
44 plot.setLabelFont(new Font("宋体", Font.BOLD, 18));
45
46 //设置背景
47 //chart.setBackgroundImage(ImageIO.read(new File("D:\\系统文档\\Desktop\\model.png")));
48 //plot.setBackgroundImage(ImageIO.read(new File("D:\\系统文档\\Desktop\\model.png")));
49 //设置分裂效果 Explode 爆炸 percent 按照百分比
50 plot.setExplodePercent("IBM", 0.2f);
51 plot.setExplodePercent("用友", 0.1f);
52
53 //设置前景色透明度
54 plot.setForegroundAlpha(0.5f);
55 //设置标签生成器
56 //{0}:公司名称
57 //{1}:销量
58 //{2}:百分比
59 //{3}:总量
60 //{4}:
61 plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1}/{3}-{2})"));
62 //保存图片
63 ChartUtilities.saveChartAsJPEG(new File("f:\\pie.jpg"), chart, 800, 600);
64 }
65
66 }

生成柱状图

 1 package com.kite.jfreechart;
2
3 import java.awt.Font;
4 import java.io.File;
5
6 import org.jfree.chart.ChartFactory;
7 import org.jfree.chart.ChartUtilities;
8 import org.jfree.chart.JFreeChart;
9 import org.jfree.chart.plot.CategoryPlot;
10 import org.jfree.chart.plot.Plot;
11 import org.jfree.chart.plot.PlotOrientation;
12 import org.jfree.data.category.DefaultCategoryDataset;
13
14 /**
15 * 生成柱状图
16 */
17 public class AppBar
18 {
19 public static void main(String[] args) throws Exception
20 {
21
22 DefaultCategoryDataset ds = new DefaultCategoryDataset();
23
24 ds.setValue(2000, "IBM", "第一季度");
25 ds.setValue(3000, "Oracle", "第一季度");
26 ds.setValue(4000, "JBOOS", "第一季度");
27 ds.setValue(5000, "用友", "第一季度");
28
29 ds.setValue(5000, "IBM", "第二季度");
30 ds.setValue(4000, "Oracle", "第二季度");
31 ds.setValue(3000, "JBOOS", "第二季度");
32 ds.setValue(2000, "用友", "第二季度");
33
34 ds.setValue(1000, "IBM", "第三季度");
35 ds.setValue(2000, "Oracle", "第三季度");
36 ds.setValue(2500, "JBOOS", "第三季度");
37 ds.setValue(1500, "用友", "第三季度");
38
39 String title = "前三季度各大公司j2ee as销量统计 ";
40
41 JFreeChart chart = ChartFactory.createBarChart3D(title, "季度", "销量(单位:台)", ds, PlotOrientation.VERTICAL, true, true, false);
42
43 //处理中文
44 chart.getTitle().setFont(new Font("宋体",Font.BOLD,25));
45
46 //提示条
47 chart.getLegend().setItemFont(new Font("宋体",Font.PLAIN,20));
48
49 CategoryPlot plot = (CategoryPlot) chart.getPlot();
50
51 //域轴字体
52 plot.getDomainAxis().setLabelFont(new Font("宋体",Font.PLAIN,18));
53 plot.getDomainAxis().setTickLabelFont(new Font("宋体",Font.PLAIN,15));//小标签字体
54
55 //range
56 plot.getRangeAxis().setLabelFont(new Font("宋体",Font.PLAIN,18));
57 ChartUtilities.saveChartAsJPEG(new File("f:\\bar.jpg"), chart, 800, 600);
58
59 }
60 }

显示折线图

 1 package com.kite.jfreechart;
2
3 import java.awt.Font;
4 import java.io.File;
5
6 import org.jfree.chart.ChartFactory;
7 import org.jfree.chart.ChartUtilities;
8 import org.jfree.chart.JFreeChart;
9 import org.jfree.chart.plot.CategoryPlot;
10 import org.jfree.chart.plot.Plot;
11 import org.jfree.chart.plot.PlotOrientation;
12 import org.jfree.data.category.DefaultCategoryDataset;
13
14 /**
15 * 现状图
16 */
17 public class AppLine
18 {
19 public static void main(String[] args) throws Exception
20 {
21 DefaultCategoryDataset ds = new DefaultCategoryDataset();
22 ds.setValue(2000, "IBM", "第一季度");
23 ds.setValue(3000, "Oracle", "第一季度");
24 ds.setValue(4000, "JBOOS", "第一季度");
25 ds.setValue(5000, "用友", "第一季度");
26
27 ds.setValue(5000, "IBM", "第二季度");
28 ds.setValue(4000, "Oracle", "第二季度");
29 ds.setValue(3000, "JBOOS", "第二季度");
30 ds.setValue(2000, "用友", "第二季度");
31
32 ds.setValue(1000, "IBM", "第三季度");
33 ds.setValue(2000, "Oracle", "第三季度");
34 ds.setValue(2500, "JBOOS", "第三季度");
35 ds.setValue(1500, "用友", "第三季度");
36
37 String title = "前三季度各大公司j2ee as销量统计 ";
38
39 JFreeChart chart = ChartFactory.createLineChart(title, "季度", "销量(单位:台)", ds, PlotOrientation.VERTICAL, true, true, false);
40
41 //处理中文
42 chart.getTitle().setFont(new Font("宋体",Font.BOLD,25));
43
44 //提示条
45 chart.getLegend().setItemFont(new Font("宋体",Font.PLAIN,20));
46
47 CategoryPlot plot = (CategoryPlot) chart.getPlot();
48
49 //域轴字体
50 plot.getDomainAxis().setLabelFont(new Font("宋体",Font.PLAIN,18));
51 plot.getDomainAxis().setTickLabelFont(new Font("宋体",Font.PLAIN,15));//小标签字体
52
53 //range
54 plot.getRangeAxis().setLabelFont(new Font("宋体",Font.PLAIN,18));
55 ChartUtilities.saveChartAsJPEG(new File("f:\\line.jpg"), chart, 800, 600);
56
57 }
58 }

jfreechart,布布扣,bubuko.com

时间: 2024-10-25 05:03:39

jfreechart的相关文章

JAVA平台开放图表绘制类库——JFreeChart

好的东西要分享要推荐,这里向大家推荐一个java平台下的一个开源图表绘制类库JFreeChart,相关资源(源代码.demo源码.开发指南)已经上传至CSDN资源,需要的可以自行下载. JFreeChart的图表绘制功能非常强大,涵盖了几乎所有想的到的图表,并且绘制效果还很炫酷.来看下JFreeChart的主要效果图: 之前都是用excel绘制的图表,还要调整很多属性之类的东西,觉得很麻烦,所以就全部模块化实现了,代码就不贴出来了. JFreeChart相关资源下载地址:http://downl

struts2中 JFreeChart使用

添加3个包 struts2-jfreechart-plugin-2.3.16.3.jar jcommon-1.0.16.jar jfreechart-1.0.13.jar struts.xml中配置 查看struts2-jfreechart-plugin-2.3.16.3.jar中的struts-plugin.xml文件 查看其中的定义的东西 然后写着struts.xml中 1 <package name="freechart" extends="jfreechart-

JFreechart在linux下不显示及中文乱码问题

一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库提供...... 一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉,原因是jfreechart的在linux系统中需要访问java awt库提供的图形功能,而linux下的绝大多数版本的java awt类库都需要x serv

JFreeChart之堆叠柱形图(StackedBar)

JFreeChart之堆叠柱形图(StackedBar) JAVA JFreeChart 最近的项目使用有个功能需要使用到堆叠柱形图,看了项目以前的代码实现没有想要的结果.所以自己就先到官网下载了 Demo,Demo里有个打包好的Jar包,直接运行看到效果,但是坑爹的是貌似没有对应的源码,所以只能根据class名称直接google了,所幸在github里找到对应的源码. 点我下载 访问密码 f62b 这是运行Demo找到想要实现的效果的大致图: 我最终想要实现的效果是这样的: 如果想要实现这个效

[六]JFreeChart实践五之与Struts2整合

1.Action,返回Chart package com.java1234.chart.bar; import java.awt.Color; import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.ItemLabelAnchor;import org.jfree.chart.labels.ItemLabelPosition;import org.jfr

JFreeChart的简单使用

实例1:简单的饼图 public class Test { public static void main(String[] args) { //建立默认的饼图 DefaultPieDataset ds=new DefaultPieDataset(); ds.setValue("苹果",6000); ds.setValue("三星", 9000); ds.setValue("诺基亚",3200); ds.setValue("其他&quo

jfreechart和springMVC+maven整合

高校的项目中一个功能是对统计的成绩进行图表分析,查找了一些资料之后感觉jfreechar上手挺快的,简单的做了几个demo也都很好实现,也能够满足项目中的需求,所以就决定使用这个工具.这里就将学习到的一些关于jfreechar的知识整理一下. 1.    引入jar包 使用这个工具一定要将他的包引入的到项目,在高校的项目中使采用maven管理这些外部文件的,所以对于引入jar包这一步就变得特别简单了,只要在maven项目的pom.xml文件中添加jfreechar的依赖就可以(maven会自动在

SWT_AWT加载JFreeChart在Window8下显示不出JFreeChart的问题

今天终于把Window8上显示JFreeChart的问题解决了,需求是在SWT中使用JFreeChart,但JFreeChart要使用AWT的样式,不能使用SWT的样式(ChartComposite),即要使用SWT_AWT桥接来实现SWT中显示JFreeChart. 桥接的方式实现的JFreeChart在Win7上没问题,能直接显示出来,但是在Window 8上第一次加载要很长时间,而且显示不出JFreeChart.使用JFreeChart的swt例子的代码改进改成SWt_AWT测试也是同样问

[转]JFreeChart简介及下载、配置

JFreeChart简介 JFreeChart是完全基于Java语言的开源项目,因此可以使用在Java开发环境中,包括Java应用程序,或者是Java Web应用都没有任何问题.结合iText项目,可将生成的统计图表输出到PDF文件中:结合最新的POI项目,也可以将生成的统计图表输出到Excel文档中. JFreeChart可用于生成各式各样的统计图表,只要开发人员提供符合JFreeChart所需格式的数据,JFreeChart即可自动生成相应的统计图表.JFreeChart可生成饼图(pie

利用JFreeChart绘制股票K线图完整解决方案

http://blog.sina.com.cn/s/blog_4ad042e50100q7d9.html 利用JFreeChart绘制股票K线图完整解决方案 (2011-04-30 13:27:17) 标签: 绘制 股票 k线 it 分类: 软件_Software 因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上搜索发现,以自己最熟悉的两门语言为