JFreeChart学習(一)


自分は最近JFreeChartの使い方を学びましたが、この冬の機能は非常に強いと思います.主にJFreeChartが画像を生成するいくつかの方法を紹介します.
一、JFreeChart取得.JFreeChartはJFreeChart社のオープンソースサイトSourceForgeです.Net上のプロジェクトで、同社の主な製品は以下の通りである:1、JFreeReport:レポート解決ツール2、JFreeChart:Javaグラフィックソリューション(Application/APplet/Servlet/Jsp)3、JCommon:JFreeReportとJFreeChartの共通クラスライブラリ4、JFreeDesign:JFreeReportのレポート設計ツール
jfreeの公式サイトから最新バージョン(最新バージョンは1.0.5)と関連資料を入手できます(ただし、jfreeのDeveloper Guidesはドルで入手できます)、住所:http://www.jfree.org/jfreechart/index.html(簡潔な紹介も入手できます)
 
二、JFreeChart機能紹介JFreeChartは現在最高のjavaグラフィックソリューションであり、基本的に現在のグラフィック面の需要を解決することができる.主にpie charts(2 D and 3 D):円グラフ(平面と立体)bar charts(regular and stacked,with an optional 3 D effect):柱状図line and area charts:曲線図scatter plots and bubble charts time series、high/low/open/close charts and candle stick charts:タイミングチャートcombination charts:複合図Pareto charts Gantt charts:ガントチャートwind plots,meter charts and symbol charts wafer map charts(状態グラフ,餅図(2次元と3次元),柱状図(水平,垂直),線図,点図,時間変化図,ガントチャート,株式相場図,混和図、温度計図、目盛図などの一般的な商用図表)図形はPNGとJPEG形式にエクスポートでき、PDFとEXCELにも関連付けることができる.
三、JFreeChartコアクラスライブラリ紹介:jfreechartソースコードを研究し、ソースコードの発見は主に2つの大きなパッケージからなる:org.jfree.chart,org.jfree.data.前者は主に図形そのものに関係し,後者は図形表示のデータに関係する.具体的な研究はもしみんなが興味があれば自分で研究することができて、後で時間があれば私はみんなにどのようにソースコードを研究するかを教えます.コアクラスは主にorg.jfree.chart.JFreeChart:グラフオブジェクト、任意のタイプのグラフの最終表現形式は、そのオブジェクトにいくつかの属性のカスタマイズを行います.JFreeChartエンジン自体は、異なるタイプのグラフオブジェクトorgを作成するためのファクトリクラスを提供する.jfree.data.category.XXXDataSet:グラフを表示するためのデータを提供するデータセットオブジェクト.異なるタイプのグラフによって多くのタイプのデータセットオブジェクトクラスorgが対応する.jfree.chart.plot.XXXPlot:グラフ領域オブジェクト、基本的にこのオブジェクトがどのようなスタイルのグラフを決定するか、そのオブジェクトを作成する際にAxis、Renderおよびデータセットオブジェクトのサポートorgが必要となる.jfree.chart.axis.XXXAxis:グラフを扱う2つの軸:縦軸と横軸org.jfree.chart.render.XXXRenderer:グラフオブジェクトを表示する方法org.jfree.chart.urls.XXXURLGenerator:Webグラフ内の各項目を生成するマウスクリックリンクXXXXXXXTooltipGenerator:画像を生成するためのヘルプヒント、異なるタイプのグラフは異なるタイプのツールヒントクラスに対応
四、JFreeChart開発(Application/APplet)
 
1.JFreeChartを使用して3 D円グラフを生成する(画像は添付ファイルを参照)
(1)、ウィンドウJFrameの形式を直接生成する.
コードは次のとおりです.
package com.media.zhb.jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class MyJfreechartTest {

	/**
	 *      
	 * 
	 * @return
	 */
	public static DefaultPieDataset getDataSet() {
		DefaultPieDataset dfp = new DefaultPieDataset();
		dfp.setValue("    ", 25);
		dfp.setValue("    ", 35);
		dfp.setValue("    ", 20);
		dfp.setValue("    ", 5);
		dfp.setValue("    ", 15);
		return dfp;
	}

	public static void main(String[] args) {

		//      
		DefaultPieDataset dataset = getDataSet();

		//   chart      jfreechart  
		//      API
		JFreeChart chart = ChartFactory.createPieChart3D("   ", dataset, true,
				false, false);

		//   pieChart      
		String chartTitle = "   ";
		Font font = new Font("  ", Font.BOLD, 25);
		TextTitle title = new TextTitle(chartTitle);
		title.setFont(font);
		chart.setTitle(title);

		chart.setTextAntiAlias(false);

		//      
		chart.setBackgroundPaint(new Color(199, 237, 204));

		//       
		LegendTitle legend = chart.getLegend(0);
		legend.setItemFont(new Font("  ", 1, 15));

		//        
		PiePlot plot = (PiePlot) chart.getPlot();
		plot.setLabelFont(new Font("  ", Font.TRUETYPE_FONT, 12));

		// plot.setBackgroundAlpha(0.9f);

		//         (0.0-1.0)
		plot.setForegroundAlpha(0.65f);

		//         :     ,{0}     , {1}     , {2}        ,      
		plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
				"{0}={1}({2})", NumberFormat.getNumberInstance(),
				new DecimalFormat("0.00%")));

		//        :     , {0}     , {1}     , {2}       
		plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
				"{0} ({2})"));

		//         section      ,   12    
		plot.setStartAngle(90);

		ChartFrame frame = new ChartFrame("    ", chart, true);

		frame.pack();

		frame.setVisible(true);

	}

}

 
 
他のグラフィックは、後で続行します.