JFreeChart - Interface de arquivo

Até agora, estudamos como criar vários tipos de gráficos usando APIs JFreeChart usando dados estáticos. Mas, no ambiente de produção, os dados são fornecidos na forma de arquivo de texto com um formato predefinido ou vêm diretamente do banco de dados.

Este capítulo irá explicar - como podemos ler um dado simples de um determinado arquivo de texto de um determinado local e então usar JFreeChart para criar um gráfico de sua escolha.

Dados de Negócios

Considere que temos um arquivo chamado mobile.txt, tendo diferentes marcas de celular e suas vendas (unidades por dia) separadas por uma vírgula simples (,) -

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

Geração de gráfico com base em arquivo

A seguir está o código para criar um gráfico de pizza com base nas informações fornecidas em 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); 
   }
}

Vamos manter o código Java acima em PieChart_File.java arquivo e, em seguida, compilar e executá-lo a partir do comando solicitado como -

$javac PieChart_File.java  
$java PieChart_File

Se tudo estiver bem, ele irá compilar e executar para criar um arquivo de imagem JPEG chamado PieChart.jpeg que contém o seguinte gráfico.