生成饼状图
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 }
时间: 2024-10-25 05:03:39