JFreeChart - Graphique à barres

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

Un graphique à barres utilise différentes barres d'orientation (horizontale ou verticale) pour afficher des comparaisons dans diverses catégories. Un axe (axe de domaine) du graphique montre le domaine spécifique comparé et l'autre axe (axe de plage) représente des valeurs discrètes.

Données d'entreprise

L'exemple suivant illustre diverses statistiques de voiture à l'aide d'un graphique à barres. Voici une liste des marques de voitures avec leurs différentes caractéristiques, que nous montrerons à l'aide d'un graphique à barres -

Voiture La vitesse Note de l'utilisateur Millage sécurité
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

Application basée sur AWT

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

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

$javac BarChar_AWT.java  
$java BarChart_AWT

Si tout va bien, il sera compilé et exécuté pour générer le graphique à barres 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.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 );
   }
}

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

$javac BarChart.java  
$java BarChart

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