Jfreechart-bar-chart

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

JFreeChart-棒グラフ

この章では、JFreeChartを使用して、特定のビジネスデータのセットから*棒グラフ*を作成する方法を示します。

棒グラフでは、さまざまな方向(水平または垂直)の棒を使用して、さまざまなカテゴリの比較を表示します。 チャートの1つの軸(ドメイン軸)は比較される特定のドメインを示し、他の軸(範囲軸)は離散値を表します。

ビジネスデータ

次の例では、棒グラフを使用してさまざまな車の統計情報を示しています。 以下は、さまざまな特性とともに自動車ブランドのリストであり、棒グラフを使用して表示します-

Car Speed User Rating Millage Safety
Fiat 1.0 3.0 5.0 5.0
Audi 5.0 6.0 10.0 4.0
Ford 4.0 2.0 3.0 6.0

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

上記の情報から棒グラフを作成するコードは次のとおりです。 このコードは、AWTベースのアプリケーションに棒グラフを埋め込むのに役立ちます。

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class BarChart_AWT extends ApplicationFrame {

   public BarChart_AWT( String applicationTitle , String chartTitle ) {
      super( applicationTitle );
      JFreeChart barChart = ChartFactory.createBarChart(
         chartTitle,
         "Category",
         "Score",
         createDataset(),
         PlotOrientation.VERTICAL,
         true, true, false);

      ChartPanel chartPanel = new ChartPanel( barChart );
      chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) );
      setContentPane( chartPanel );
   }

   private CategoryDataset createDataset( ) {
      final String fiat = "FIAT";
      final String audi = "AUDI";
      final String ford = "FORD";
      final String speed = "Speed";
      final String millage = "Millage";
      final String userrating = "User Rating";
      final String safety = "safety";
      final DefaultCategoryDataset dataset =
      new DefaultCategoryDataset( );

      dataset.addValue( 1.0 , fiat , speed );
      dataset.addValue( 3.0 , fiat , userrating );
      dataset.addValue( 5.0 , fiat , millage );
      dataset.addValue( 5.0 , fiat , safety );

      dataset.addValue( 5.0 , audi , speed );
      dataset.addValue( 6.0 , audi , userrating );
      dataset.addValue( 10.0 , audi , millage );
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );
      dataset.addValue( 2.0 , ford , userrating );
      dataset.addValue( 3.0 , ford , millage );
      dataset.addValue( 6.0 , ford , safety );

      return dataset;
   }

   public static void main( String[ ] args ) {
      BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics",
         "Which car do you like?");
      chart.pack( );
      RefineryUtilities.centerFrameOnScreen( chart );
      chart.setVisible( true );
   }
}

上記のJavaコードを BarChart_AWT.java ファイルに保存し、プロンプトが表示されたコマンドからコンパイルして実行します。

$javac BarChar_AWT.java
$java BarChart_AWT

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

JFree Chart

JPEG画像作成

上記の例を書き直して、コマンドラインからJPEGイメージを生成します。

import java.io.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.ChartUtilities;

public class BarChart {

   public static void main( String[ ] args )throws Exception {
      final String fiat = "FIAT";
      final String audi = "AUDI";
      final String ford = "FORD";
      final String speed = "Speed";
      final String millage = "Millage";
      final String userrating = "User Rating";
      final String safety = "safety";

      final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 1.0 , fiat , speed );
      dataset.addValue( 3.0 , fiat , userrating );
      dataset.addValue( 5.0 , fiat , millage );
      dataset.addValue( 5.0 , fiat , safety );

      dataset.addValue( 5.0 , audi , speed );
      dataset.addValue( 6.0 , audi , userrating );
      dataset.addValue( 10.0 , audi , millage );
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );
      dataset.addValue( 2.0 , ford , userrating );
      dataset.addValue( 3.0 , ford , millage );
      dataset.addValue( 6.0 , ford , safety );

      JFreeChart barChart = ChartFactory.createBarChart(
         "CAR USAGE STATIStICS",
         "Category", "Score",
         dataset,PlotOrientation.VERTICAL,
         true, true, false);

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

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

$javac BarChart.java
$java BarChart

すべてが正常であれば、コンパイルして実行され、現在のディレクトリに BarChart.jpeg という名前のJPEG画像ファイルが作成されます。