JFreeChart最佳实践:3D饼图

开发 后端
本文将介绍作者通过Java最佳图形解决方案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)小试牛刀。

package com.huawei.jfreechart;  
import java.awt.BasicStroke;  
import java.awt.Color;  
import java.awt.Font;  
import org.jfree.chart.ChartFactory;  
import org.jfree.chart.ChartFrame;  
import org.jfree.chart.JFreeChart;  
import org.jfree.chart.labels.StandardPieToolTipGenerator;  
import org.jfree.chart.plot.PiePlot;  
import org.jfree.chart.plot.PiePlot3D;  
import org.jfree.chart.title.TextTitle;  
import org.jfree.data.general.DefaultPieDataset;  
 
/**  
 * @name 何枫  
 * @date 2010-12-14  
 * @action jfreechartTest.java  
 * @time 下午07:16:19  
 * @package_name com.huawei.jfreechart  
 * @project_name jfreechartTest  
 */ 
public class JfreeChartTest {  
 
    public static void main(String[] args) {  
 
        // 创建饼图数据对象  
 
        DefaultPieDataset dfp = new DefaultPieDataset();  
 
        dfp.setValue("管理人员"25);  
 
        dfp.setValue("市场人员"35);  
 
        dfp.setValue("开发人员"20);  
 
        dfp.setValue("后勤人员"5);  
 
        dfp.setValue("财务人员"15);  
 
        // 饼状图的解决办法  
        // createpieChart3D创建3D饼图  
        // createpieChart创建饼图  
        JFreeChart chart = ChartFactory.createPieChart3D("CityInfoPort公司组织架构图",dfp, truetruetrue);  
        // 图片背景色  
        chart.setBackgroundPaint(Color.red);  
        // 设置标题文字  
        ChartFrame frame = new ChartFrame("CityInfoPort公司组织架构图 ",chart, true);  
        // 取得饼图plot对象  
        // PiePlot plot = (PiePlot) chart.getPlot();  
        // 取得3D饼图对象  
        PiePlot3D plot = (PiePlot3D) chart.getPlot();  
        // 图形边框颜色  
        plot.setBaseSectionOutlinePaint(Color.RED);  
        // plot.setBaseSectionPaint(Color.WHITE);  
        // 图形边框粗细  
        plot.setBaseSectionOutlineStroke(new BasicStroke(1.0f));  
 
        // 指定图片的透明度(0.0-1.0)  
        plot.setForegroundAlpha(0.65f);  
        // 指定显示的饼图上圆形(false)还椭圆形(true)  
        plot.setCircular(true);  
 
        // 设置***个 饼块section 的开始位置,默认是12点钟方向  
        plot.setStartAngle(360);  
        // 设置鼠标悬停提示  
        plot.setToolTipGenerator(new StandardPieToolTipGenerator());  
 
        // 设置突出显示的数据块  
        plot.setExplodePercent("One"0.1D);  
        // 设置饼图各部分标签字体  
        plot.setLabelFont(new Font("宋体", Font.ITALIC, 20));  
        // 设置分饼颜色  
        plot.setSectionPaint(0new Color(244194144));  
        // plot.setSectionPaint("2", new Color(144, 233, 144));  
        // 设置图例说明Legend上的文字  
        chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 30));  
        // 定义字体格式  
        Font font = new java.awt.Font("黑体", java.awt.Font.CENTER_BASELINE,50);  
        TextTitle title = new TextTitle("项目状态分布");  
        title.setFont(font);  
        // 设置字体,非常关键不然会出现乱码的,下方的字体  
        chart.setTitle(title);  
        frame.pack();  
        frame.setVisible(true);  
 
    }  
 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.

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

【编辑推荐】

  1. JFreeChart***实践:折线图
  2. JFreeChart***实践:柱状图
  3. JFreeChart***实践:3D饼图
  4. JFreeChart***实践:时序图
  5. JFreeChart***实践:甘特图
责任编辑:林师授 来源: 何枫abc的博客
相关推荐

2011-12-21 13:44:33

JavaJFreeChart

2011-12-21 12:58:41

JavaJFreeChart

2011-12-21 14:34:33

JavaJFreeChart

2011-12-21 13:35:39

JavaJFreeChart

2011-12-21 13:52:27

JavaJFreeChart

2011-12-21 13:25:33

JavaJFreeChart

2011-12-21 14:15:08

JavaJFreeChart

2017-07-21 11:28:57

前端Threejs3D地图

2011-09-22 10:07:52

奥图码投影仪

2022-09-19 19:16:42

轮播图has

2024-07-16 12:02:11

2023-06-03 08:06:20

项目开发客户端

2024-03-20 15:51:00

AI数据

2011-10-06 13:30:45

宏碁投影仪

2012-11-26 12:51:44

木材3D打

2024-12-10 15:17:11

2011-08-22 14:28:48

奥图码投影机

2009-04-02 13:44:59

linuxOpenSUSE安装界面

2011-07-13 09:16:16

苹果触屏3D

2011-05-26 10:05:07

优派投影机
点赞
收藏

51CTO技术栈公众号