日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

使用Jfreechart開發(fā)圖表應(yīng)用程序

1.介紹

JFreeChart是基于Java平臺的免費的圖表庫.它運行在java2(JDK 1.2.2或更高版本)平臺上,并且使用Java 2D API進行制圖。最新的版本是jfreechart-1.0.0-rc1,可以從http://www./jfreechart/下載到。

2.文檔

JFreeChart的API文檔http://www./jfreechart/javadoc/,如果想在本地保存一份的話,一種方法是利用javadoc或者gcjdoc工具直接從源代碼中生成,還有一種方法是使用Ant腳本(Build.xml).

遺憾的是,JFreeChart的開發(fā)文檔(the JFreeChart Developer Guide)是需要付費的(US$39.95),也許這就是關(guān)于JFreeChart的文章比較少的原因吧。

3.依賴的包

(a) JDK 1.2.2或者更高版本.

(b) JCommon - version 1.0.0-pre2 or later.

(c) GNU JAXP

(d) servlet.jar

(e) JUnit

除(a)外, 都可以在JFreeChart的jar包里面找到.

4.安裝

5.通過一個簡單的例子,讓我們看看JFreeChart是如何方便的生成我們想要的餅圖的.

package tracy.test;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.data.general.DefaultPieDataset;

public class PieChart {

public void drawToFile(){

//設(shè)置數(shù)據(jù)

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("冰箱", 1800);

dataset.setValue("電視", 1600);

dataset.setValue("空調(diào)", 3300);

dataset.setValue("洗衣機", 2000);

dataset.setValue("DVD", 400);

//通過工廠類生成JFreeChart對象

JFreeChart chart = ChartFactory.createPieChart3D("家電投資比例示意圖", dataset, true, false, false);

//寫圖表對象到文件

FileOutputStream fos_jpg = null;

try {

fos_jpg = new FileOutputStream("D:pi.jpg");

ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

fos_jpg.close();

} catch (Exception e) {}

}

}

}

運行后如下圖:

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

6.設(shè)置顯示方式

上一篇只是對Jfreechart做了一個介紹,下面我們來深入探討Jfreechart的設(shè)置,隨心所欲得到我們想要的圖表。

(本文列出的例子是對前文例子的修改,所以請大家在閱讀本文之前,先閱讀前面的一篇.)

一. 加個副標題

chart.addSubtitle(new TextTitle("2005年度"));

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

  

二.對圖表顯示方式的設(shè)置

這就要借助Plot了,對于餅圖的設(shè)置,有相應(yīng)的PiePlot,得到其對象的方法:

PiePlot pie = (PiePlot)chart.getPlot();

下面通過幾個例子,說明PiePlot的幾個常用方法,是如何控制chart發(fā)生變化,達到我們預期效果的.

1. 將指定section的輪廓線設(shè)置成白色

plot.setSectionOutlinePaint(1, Color.WHITE);

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

2. 設(shè)置餅圖是圓的(true),還是橢圓的(false);默認為true

plot.setCircular(false);使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

plot.setExplodePercent(0, 0.2);

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

三.百分率問題

什么是百分率問題?

默認狀態(tài)下,標簽和圖例顯示的是"關(guān)鍵字=數(shù)值"的格式。如果我們想標出每個section所占的百分率,那怎么做呢?我想在顯示數(shù)值的同時,顯示單位,又該怎么做呢?

這個問題,還是要借助Plot,只是這是一個大家經(jīng)常遇到的一個問題,所以單獨討論。

設(shè)置標簽使用setLabelGenerator(PieSectionLabelGenerator generator)方法,設(shè)置圖例使用setLegendLabelGenerator(PieSectionLabelGenerator generator)方法

//顯示格式設(shè)置成DEFAULT_TOOLTIP_FORMAT:"{0}: ({1}, {2})"

plot.setLabelGenerator(new StandardPieItemLabelGenerator(StandardPieItemLabelGenerator.DEFAULT_TOOLTIP_FORMAT));

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

//標簽顯示格式設(shè)置成{0}={2}

plot.setLabelGenerator(new StandardPieItemLabelGenerator("{0}={2}", NumberFormat.getNumberInstance(), new DecimalFormat("0.0%")));

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

//圖例顯示格式設(shè)置成{0}: ¥{1},加上單位,更加清楚數(shù)值的含義

plot.setLegendLabelGenerator(new StandardPieItemLabelGenerator("{0}: ¥{1}"));

使用Jfreechart開發(fā)圖表應(yīng)用程序 - 寶寶 - Monicas  fossa

這里{0}表示"關(guān)鍵字",{1}表示"數(shù)值",{2}表示"百分率"

聲明:JFreeChart版本修訂過程中,類結(jié)構(gòu)出現(xiàn)相當大的變化,本文僅針對jfreechart-1.0.0-rc1.

3. 突出某一部分,及設(shè)置間隔距離.注意此方法僅對2D餅圖有效,3D無效3.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多