JFreeChart - Interfaz de archivo

Hasta ahora hemos estudiado cómo crear varios tipos de gráficos utilizando las API de JFreeChart utilizando datos estáticos. Pero en el entorno de producción, los datos se proporcionan en forma de archivo de texto con un formato predefinido o provienen directamente de la base de datos.

Este capítulo explicará cómo podemos leer datos simples de un archivo de texto dado desde una ubicación determinada y luego usar JFreeChart para crear un gráfico de su elección.

Datos comerciales

Considere que tenemos un archivo llamado mobile.txt, tener diferentes marcas de dispositivos móviles y su venta (unidades por día) separadas por una simple coma (,) -

Iphone 5S, 20   
Samsung Grand, 20   
MOTO G, 40  Nokia  
Lumia, 10

Generación de gráficos basados ​​en archivos

A continuación se muestra el código para crear un gráfico circular basado en la información proporcionada en mobile.txt:

import java.io.*; 

import java.util.StringTokenizer; 

import org.jfree.chart.ChartUtilities; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.general.DefaultPieDataset;

public class PieChart_File {
   
   public static void main( String[ ] args )throws Exception {
      
      String mobilebrands[ ] = {    
         "IPhone 5s" ,   
         "SamSung Grand" ,   
         "MotoG" ,    
         "Nokia Lumia" 
      };
      
      InputStream in = new FileInputStream( new File( "C:/temp/test.txt" ) );          
      BufferedReader reader = new BufferedReader(new InputStreamReader(in ) );          
      StringBuilder out = new StringBuilder();          
      String line;          
      DefaultPieDataset dataset = new DefaultPieDataset();          

      while (( line = reader.readLine() ) != null ) {
         out.append( line );
      }
      
      StringTokenizer s = new StringTokenizer( out.toString(), "," );
      int i = 0;      
      
      while( s.hasMoreTokens( ) && ( mobilebrands [i] != null ) ) {
         dataset.setValue(mobilebrands[i], Double.parseDouble( s.nextToken( ) ));
         i++;
      }
      
      JFreeChart chart = ChartFactory.createPieChart( 
         "Mobile Sales",    // chart title           
         dataset,           // data           
         true,              // include legend           
         true,           
         false);
      
      int width = 560;    /* Width of the image */          
      int height = 370;   /* Height of the image */                          
      File pieChart = new File( "pie_Chart.jpeg" );                        
      ChartUtilities.saveChartAsJPEG( pieChart, chart, width, height); 
   }
}

Mantengamos el código Java anterior en PieChart_File.java archivo, y luego compílelo y ejecútelo desde el comando solicitado como -

$javac PieChart_File.java  
$java PieChart_File

Si todo está bien, se compilará y se ejecutará para crear un archivo de imagen JPEG llamado PieChart.jpeg que contiene la siguiente tabla.