`

jfreechart饼图

阅读更多
早在公司实习的时候就有调研过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, true, true, true);
		// 图片背景色
		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(0, new Color(244, 194, 144));
		// 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);

	}

}


  • 大小: 153.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics