Jfreechart-pie-chart

提供:Dev Guides
移動先:案内検索

JFreeChart-円グラフ

円グラフでは、各セクターの弧の長さは、それが表す量に比例します。 この章では、JFreeChartを使用して、ビジネスデータの特定のセットから*円グラフ*を作成する方法を示します。

ビジネスデータ

次の例は、円グラフを使用したモバイル販売を示しています。 以下は、さまざまなモバイルブランドとその販売(1日あたりのユニット数)のリストです。

S.No Mobile Brands Sales (UNITS per day)
1 Iphone 5S 20
2 Samsung Grand 20
3 MOTO G 40
4 Nokia Lumia 10

AWTベースのアプリケーション

以下は、上記の情報を使用して円グラフを作成するコードです。 このコードは、AWTベースのアプリケーションに円グラフを埋め込むのに役立ちます。

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class PieChart_AWT extends ApplicationFrame {

   public PieChart_AWT( String title ) {
      super( title );
      setContentPane(createDemoPanel( ));
   }

   private static PieDataset createDataset( ) {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue( "IPhone 5s" , new Double( 20 ) );
      dataset.setValue( "SamSung Grand" , new Double( 20 ) );
      dataset.setValue( "MotoG" , new Double( 40 ) );
      dataset.setValue( "Nokia Lumia" , new Double( 10 ) );
      return dataset;
   }

   private static JFreeChart createChart( PieDataset dataset ) {
      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",  //chart title
         dataset,         //data
         true,            //include legend
         true,
         false);

      return chart;
   }

   public static JPanel createDemoPanel( ) {
      JFreeChart chart = createChart(createDataset( ) );
      return new ChartPanel( chart );
   }

   public static void main( String[ ] args ) {
      PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );
      demo.setSize( 560 , 367 );
      RefineryUtilities.centerFrameOnScreen( demo );
      demo.setVisible( true );
   }
}

上記のJavaコードを PieChart_AWT.java ファイルに保存し、プロンプトとしてコマンドからコンパイルして実行します。

$javac PieChart_AWT.java
$java PieChart_AWT

すべてがうまくいけば、コンパイルして実行し、次の円グラフを生成します-

JFreeChart円グラフ

アプリケーションにチャートを埋め込む必要がない場合は、コマンドプロンプトでチャートイメージを作成できます。 JFreeChartでは、グラフ画像をJPGまたはPNG形式で保存できます。

JPEG画像作成

上記の例を書き直して、コマンドラインからJPEGイメージを生成します。 以下は、JFreeChartライブラリによって提供される2つのAPIです。これらを使用して、要件に応じてPNGまたはJPEGイメージを生成できます。

  • * saveChartAsPNG()*-画像をPNG形式で保存するAPI。
  • * saveChartAsJPEG()*-JPEG形式で画像を保存するAPI。
import java.io.*;

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class PieChart {

   public static void main( String[ ] args ) throws Exception {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue("IPhone 5s", new Double( 20 ) );
      dataset.setValue("SamSung Grand", new Double( 20 ) );
      dataset.setValue("MotoG", new Double( 40 ) );
      dataset.setValue("Nokia Lumia", new Double( 10 ) );

      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",  //chart title
         dataset,         //data
         true,            //include legend
         true,
         false);

      int width = 640;  /*Width of the image*/
      int height = 480; /*Height of the image*/
      File pieChart = new File( "PieChart.jpeg" );
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

上記のJavaコードを PieChart.java ファイルに保存し、プロンプトとしてコマンドからコンパイルして実行します。

$javac PieChart.java
$java PieChart

すべて問題なければ、コンパイルして実行し、 PieChart.jpeg という名前のJPEGイメージファイルを現在のディレクトリに作成します。