Jfreechart-line-chart

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

JFreeChart-折れ線グラフ

折れ線グラフまたは折れ線グラフは、直線セグメントで接続された一連のデータポイント(マーカー)として情報を表示します。 折れ線グラフは、同じ時間頻度でデータがどのように変化するかを示しています。

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

ビジネスデータ

次の例では、折れ線グラフを描画して、1970年から始まるさまざまな年に開かれた学校の数の傾向を示しています。

与えられたデータは次のとおりです-

Year Number OF Schools
1970 15
1980 30
1990 60
2000 120
2013 240
2014 300

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

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

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

public class LineChart_AWT extends ApplicationFrame {

   public LineChart_AWT( String applicationTitle , String chartTitle ) {
      super(applicationTitle);
      JFreeChart lineChart = ChartFactory.createLineChart(
         chartTitle,
         "Years","Number of Schools",
         createDataset(),
         PlotOrientation.VERTICAL,
         true,true,false);

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

   private DefaultCategoryDataset createDataset( ) {
      DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 15 , "schools" , "1970" );
      dataset.addValue( 30 , "schools" , "1980" );
      dataset.addValue( 60 , "schools" ,  "1990" );
      dataset.addValue( 120 , "schools" , "2000" );
      dataset.addValue( 240 , "schools" , "2010" );
      dataset.addValue( 300 , "schools" , "2014" );
      return dataset;
   }

   public static void main( String[ ] args ) {
      LineChart_AWT chart = new LineChart_AWT(
         "School Vs Years" ,
         "Numer of Schools vs years");

      chart.pack( );
      RefineryUtilities.centerFrameOnScreen( chart );
      chart.setVisible( true );
   }
}

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

$javac LineChart_AWT.java
$java LineChart_AWT

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

JFreeChart折れ線グラフ

JPEG画像作成

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

import java.io.*;

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

public class LineChart {

   public static void main( String[ ] args ) throws Exception {
      DefaultCategoryDataset line_chart_dataset = new DefaultCategoryDataset();
      line_chart_dataset.addValue( 15 , "schools" , "1970" );
      line_chart_dataset.addValue( 30 , "schools" , "1980" );
      line_chart_dataset.addValue( 60 , "schools" , "1990" );
      line_chart_dataset.addValue( 120 , "schools" , "2000" );
      line_chart_dataset.addValue( 240 , "schools" , "2010" );
      line_chart_dataset.addValue( 300 , "schools" , "2014" );

      JFreeChart lineChartObject = ChartFactory.createLineChart(
         "Schools Vs Years","Year",
         "Schools Count",
         line_chart_dataset,PlotOrientation.VERTICAL,
         true,true,false);

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

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

$javac LineChart.java
$java LineChart

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