JFreeChart - wykres liniowy

Wykres liniowy lub wykres liniowy przedstawia informacje jako serię punktów danych (znaczników) połączonych segmentami prostymi. Wykres liniowy pokazuje, jak dane zmieniają się z równą częstotliwością.

W tym rozdziale pokazano, jak możemy używać JFreeChart do tworzenia Line Chart z danego zestawu danych biznesowych.

Dane biznesowe

Poniższy przykład rysuje wykres liniowy, aby pokazać trend liczby szkół otwartych w różnych latach, począwszy od 1970 r.

Podane dane są następujące -

Rok Liczba szkół
1970 15
1980 30
1990 60
2000 120
2013 240
2014 300

Aplikacja oparta na AWT

Poniżej znajduje się kod do tworzenia wykresu liniowego na podstawie podanych powyżej informacji. Ten kod pomaga osadzić wykres liniowy w dowolnej aplikacji opartej na 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 );
   }
}

Zachowajmy powyższy kod Java w LineChart_AWT.java plik, a następnie skompiluj i uruchom go z wiersza polecenia jako -

$javac LineChart_AWT.java  
$java LineChart_AWT

Jeśli wszystko jest w porządku, skompiluje się i uruchomi, aby wygenerować następujący wykres liniowy -

Tworzenie obrazów JPEG

Napiszmy ponownie powyższy przykład, aby wygenerować obraz JPEG z wiersza poleceń.

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);
   }
}

Zachowajmy powyższy kod Java w LineChart.java plik, a następnie skompiluj i uruchom go z wiersza polecenia jako -

$javac LineChart.java  
$java LineChart

Jeśli wszystko jest w porządku, skompiluje się i uruchomi, aby utworzyć plik obrazu JPEG o nazwie LineChart.jpeg w twoim bieżącym katalogu.