JFreeChart-라인 차트

라인 차트 또는 라인 그래프는 정보를 직선 세그먼트로 연결된 일련의 데이터 포인트 (마커)로 표시합니다. 꺾은 선형 차트는 동일한 시간 빈도에서 데이터가 어떻게 변경되는지 보여줍니다.

이 장에서는 JFreeChart를 사용하여 Line Chart 주어진 비즈니스 데이터 세트에서

비즈니스 데이터

다음 예는 1970 년부터 시작하여 여러 연도에 개교 한 학교 수의 추세를 보여주는 선형 차트를 그립니다.

주어진 데이터는 다음과 같습니다-

학교 수
1970 년 15
1980 년 30
1990 년 60
2000 년 120
2013 년 240
2014 년 300

AWT 기반 애플리케이션

다음은 위의 정보로 Line Chart를 생성하는 코드입니다. 이 코드는 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

모든 것이 정상이면 컴파일되고 실행되어 다음 선 그래프를 생성합니다.

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

모든 것이 정상이면 컴파일되고 실행되어 이름이 JPEG 이미지 파일이 생성됩니다. LineChart.jpeg 현재 디렉토리에서.