jfreechart

生成饼状图java

 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 }
相关文章
相关标签/搜索