JFreeChart最佳实践:3D饼图

早在公司实习的时候就有调研过JFreeChart,那会也只是大概的研究一下没怎么的深入,其牛B的特效让我记忆犹新,这几天突然有很强的求胜欲望很想来把它搞懂。

 一、首先JFreeChart是JFreeChart公司在开源网站SourceForge.net上的一个项目,报表解决工具。我们可以从jfree官方网站上获取最新版本(最新的版本是1.0.13)和相关资料(但花美金才能获取)。

获取地址:http://www.jfree.org/jfreechart/index.html(同时可以获得简明介绍)

我是当前版本:jfreechart-1.0.13为例子进行说明。

二、JFreeChart配置

1、解压jfreechart-1.0.13.zip到指定位置,其中source是jfreechart的源码,jfreechart-1.0.13- demo.jar 是例子程序(该部分留给大家自己去研究)

2、为了配置成功,我们需要关注的文件有如下三个:

lib\jfreechart-1.0.13.jar,l

lib\jcommon-1.0.13.jar,

lib\-1.0.13.jar

 三、JFreeChart功能介绍

JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面:(态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表) 图形可以导出成PNG和JPEG格式,

这就只来个简单的介绍了,要想更仔细的来了解JFreeChart的结构.那就Google吧!Google永远是我们第一选择的。

今天就首先来拿2D/3D饼图(createPieChart/createPieChart3D)小试牛刀。

 
 
  1. package com.huawei.jfreechart;  
  2. import java.awt.BasicStroke;  
  3. import java.awt.Color;  
  4. import java.awt.Font;  
  5. import org.jfree.chart.ChartFactory;  
  6. import org.jfree.chart.ChartFrame;  
  7. import org.jfree.chart.JFreeChart;  
  8. import org.jfree.chart.labels.StandardPieToolTipGenerator;  
  9. import org.jfree.chart.plot.PiePlot;  
  10. import org.jfree.chart.plot.PiePlot3D;  
  11. import org.jfree.chart.title.TextTitle;  
  12. import org.jfree.data.general.DefaultPieDataset;  
  13.  
  14. /**  
  15.  * @name 何枫  
  16.  * @date 2010-12-14  
  17.  * @action jfreechartTest.java  
  18.  * @time 下午07:16:19  
  19.  * @package_name com.huawei.jfreechart  
  20.  * @project_name jfreechartTest  
  21.  */ 
  22. public class JfreeChartTest {  
  23.  
  24.     public static void main(String[] args) {  
  25.  
  26.         // 创建饼图数据对象  
  27.  
  28.         DefaultPieDataset dfp = new DefaultPieDataset();  
  29.  
  30.         dfp.setValue("管理人员"25);  
  31.  
  32.         dfp.setValue("市场人员"35);  
  33.  
  34.         dfp.setValue("开发人员"20);  
  35.  
  36.         dfp.setValue("后勤人员"5);  
  37.  
  38.         dfp.setValue("财务人员"15);  
  39.  
  40.         // 饼状图的解决办法  
  41.         // createpieChart3D创建3D饼图  
  42.         // createpieChart创建饼图  
  43.         JFreeChart chart = ChartFactory.createPieChart3D("CityInfoPort公司组织架构图",dfp, truetruetrue);  
  44.         // 图片背景色  
  45.         chart.setBackgroundPaint(Color.red);  
  46.         // 设置标题文字  
  47.         ChartFrame frame = new ChartFrame("CityInfoPort公司组织架构图 ",chart, true);  
  48.         // 取得饼图plot对象  
  49.         // PiePlot plot = (PiePlot) chart.getPlot();  
  50.         // 取得3D饼图对象  
  51.         PiePlot3D plot = (PiePlot3D) chart.getPlot();  
  52.         // 图形边框颜色  
  53.         plot.setBaseSectionOutlinePaint(Color.RED);  
  54.         // plot.setBaseSectionPaint(Color.WHITE);  
  55.         // 图形边框粗细  
  56.         plot.setBaseSectionOutlineStroke(new BasicStroke(1.0f));  
  57.  
  58.         // 指定图片的透明度(0.0-1.0)  
  59.         plot.setForegroundAlpha(0.65f);  
  60.         // 指定显示的饼图上圆形(false)还椭圆形(true)  
  61.         plot.setCircular(true);  
  62.  
  63.         // 设置第一个 饼块section 的开始位置,默认是12点钟方向  
  64.         plot.setStartAngle(360);  
  65.         // 设置鼠标悬停提示  
  66.         plot.setToolTipGenerator(new StandardPieToolTipGenerator());  
  67.  
  68.         // 设置突出显示的数据块  
  69.         plot.setExplodePercent("One"0.1D);  
  70.         // 设置饼图各部分标签字体  
  71.         plot.setLabelFont(new Font("宋体", Font.ITALIC, 20));  
  72.         // 设置分饼颜色  
  73.         plot.setSectionPaint(0new Color(244194144));  
  74.         // plot.setSectionPaint("2", new Color(144, 233, 144));  
  75.         // 设置图例说明Legend上的文字  
  76.         chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 30));  
  77.         // 定义字体格式  
  78.         Font font = new java.awt.Font("黑体", java.awt.Font.CENTER_BASELINE,50);  
  79.         TextTitle title = new TextTitle("项目状态分布");  
  80.         title.setFont(font);  
  81.         // 设置字体,非常关键不然会出现乱码的,下方的字体  
  82.         chart.setTitle(title);  
  83.         frame.pack();  
  84.         frame.setVisible(true);  
  85.  
  86.     }  
  87.  

原文链接:http://hefeng1987-net-163-com.iteye.com/blog/842248

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值