JFreeChart最佳實踐:3D餅圖
早在公司實習(xí)的時候就有調(diào)研過JFreeChart,那會也只是大概的研究一下沒怎么的深入,其牛B的特效讓我記憶猶新,這幾天突然有很強的求勝欲望很想來把它搞懂。
一、首先JFreeChart是JFreeChart公司在開源網(wǎng)站SourceForge.net上的一個項目,報表解決工具。我們可以從jfree官方網(wǎng)站上獲取***版本(***的版本是1.0.13)和相關(guān)資料(但花美金才能獲取)。
獲取地址:http://www.jfree.org/jfreechart/index.html(同時可以獲得簡明介紹)
我是當(dāng)前版本:jfreechart-1.0.13為例子進(jìn)行說明。
二、JFreeChart配置
1、解壓jfreechart-1.0.13.zip到指定位置,其中source是jfreechart的源碼,jfreechart-1.0.13- demo.jar 是例子程序(該部分留給大家自己去研究)
2、為了配置成功,我們需要關(guān)注的文件有如下三個:
lib\jfreechart-1.0.13.jar,l
lib\jcommon-1.0.13.jar,
lib\-1.0.13.jar
三、JFreeChart功能介紹
JFreeChart目前是***的java圖形解決方案,基本能夠解決目前的圖形方面的需求,主要包括如下幾個方面:(態(tài)圖表,餅圖(二維和三維) , 柱狀圖 (水平,垂直),線圖,點圖,時間變化圖,甘特圖, 股票行情圖,混和圖, 溫度計圖, 刻度圖等常用商用圖表) 圖形可以導(dǎo)出成PNG和JPEG格式,
這就只來個簡單的介紹了,要想更仔細(xì)的來了解JFreeChart的結(jié)構(gòu).那就Google吧!Google永遠(yuǎn)是我們***選擇的。
今天就首先來拿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) {
- // 創(chuàng)建餅圖數(shù)據(jù)對象
- DefaultPieDataset dfp = new DefaultPieDataset();
- dfp.setValue("管理人員", 25);
- dfp.setValue("市場人員", 35);
- dfp.setValue("開發(fā)人員", 20);
- dfp.setValue("后勤人員", 5);
- dfp.setValue("財務(wù)人員", 15);
- // 餅狀圖的解決辦法
- // createpieChart3D創(chuàng)建3D餅圖
- // createpieChart創(chuàng)建餅圖
- JFreeChart chart = ChartFactory.createPieChart3D("CityInfoPort公司組織架構(gòu)圖",dfp, true, true, true);
- // 圖片背景色
- chart.setBackgroundPaint(Color.red);
- // 設(shè)置標(biāo)題文字
- ChartFrame frame = new ChartFrame("CityInfoPort公司組織架構(gòu)圖 ",chart, true);
- // 取得餅圖plot對象
- // PiePlot plot = (PiePlot) chart.getPlot();
- // 取得3D餅圖對象
- PiePlot3D plot = (PiePlot3D) chart.getPlot();
- // 圖形邊框顏色
- plot.setBaseSectionOutlinePaint(Color.RED);
- // plot.setBaseSectionPaint(Color.WHITE);
- // 圖形邊框粗細(xì)
- plot.setBaseSectionOutlineStroke(new BasicStroke(1.0f));
- // 指定圖片的透明度(0.0-1.0)
- plot.setForegroundAlpha(0.65f);
- // 指定顯示的餅圖上圓形(false)還橢圓形(true)
- plot.setCircular(true);
- // 設(shè)置***個 餅塊section 的開始位置,默認(rèn)是12點鐘方向
- plot.setStartAngle(360);
- // 設(shè)置鼠標(biāo)懸停提示
- plot.setToolTipGenerator(new StandardPieToolTipGenerator());
- // 設(shè)置突出顯示的數(shù)據(jù)塊
- plot.setExplodePercent("One", 0.1D);
- // 設(shè)置餅圖各部分標(biāo)簽字體
- plot.setLabelFont(new Font("宋體", Font.ITALIC, 20));
- // 設(shè)置分餅顏色
- plot.setSectionPaint(0, new Color(244, 194, 144));
- // plot.setSectionPaint("2", new Color(144, 233, 144));
- // 設(shè)置圖例說明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("項目狀態(tài)分布");
- title.setFont(font);
- // 設(shè)置字體,非常關(guān)鍵不然會出現(xiàn)亂碼的,下方的字體
- chart.setTitle(title);
- frame.pack();
- frame.setVisible(true);
- }
- }
原文鏈接:http://hefeng1987-net-163-com.iteye.com/blog/842248
【編輯推薦】