JFreeChart - Graphique en courbes

Un graphique linéaire ou un graphique linéaire affiche les informations sous la forme d'une série de points de données (marqueurs) connectés par des segments de ligne droite. Le graphique linéaire montre comment les données changent à une fréquence égale.

Ce chapitre montre comment utiliser JFreeChart pour créer Line Chart à partir d'un ensemble donné de données commerciales.

Données d'entreprise

L'exemple suivant trace un graphique linéaire pour montrer une tendance du nombre d'écoles ouvertes au cours des différentes années à partir de 1970.

Les données données sont les suivantes -

An Nombre d'écoles
1970 15
1980 30
1990 60
2000 120
2013 240
2014 300

Application basée sur AWT

Voici le code pour créer un graphique linéaire à partir des informations ci-dessus. Ce code vous aide à intégrer un graphique linéaire dans n'importe quelle application basée sur 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 );
   }
}

Gardons le code Java ci-dessus dans LineChart_AWT.java fichier, puis compilez et exécutez-le à partir de la commande invitée comme -

$javac LineChart_AWT.java  
$java LineChart_AWT

Si tout va bien, il sera compilé et exécuté pour générer le graphique linéaire suivant -

Création d'images JPEG

Réécrivons l'exemple ci-dessus pour générer une image JPEG à partir d'une ligne de commande.

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

Gardons le code Java ci-dessus dans LineChart.java fichier, puis compilez et exécutez-le à partir de la commande invitée comme -

$javac LineChart.java  
$java LineChart

Si tout va bien, il se compilera et s'exécutera pour créer un fichier image JPEG nommé LineChart.jpeg dans votre répertoire actuel.