JFreeChart - gráfico de pizza

Em um gráfico de pizza, o comprimento do arco de cada setor é proporcional à quantidade que ele representa. Este capítulo demonstra - como podemos usar JFreeChart para criarPie Chart de um determinado conjunto de dados de negócios.

Dados de negócios

O exemplo a seguir descreve a venda móvel com a ajuda de um gráfico de pizza. A seguir está uma lista de diferentes marcas de celular e suas vendas (unidades por dia).

S.No Marcas de celular Vendas (UNIDADES por dia)
1 Iphone 5S 20
2 Samsung Grand 20
3 MOTO G 40
4 Nokia Lumia 10

Aplicativo baseado em AWT

A seguir está o código para criar um gráfico de pizza usando as informações fornecidas acima. Este código ajuda você a incorporar um gráfico de pizza em qualquer aplicativo baseado em AWT.

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
 
public class PieChart_AWT extends ApplicationFrame {
   
   public PieChart_AWT( String title ) {
      super( title ); 
      setContentPane(createDemoPanel( ));
   }
   
   private static PieDataset createDataset( ) {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue( "IPhone 5s" , new Double( 20 ) );  
      dataset.setValue( "SamSung Grand" , new Double( 20 ) );   
      dataset.setValue( "MotoG" , new Double( 40 ) );    
      dataset.setValue( "Nokia Lumia" , new Double( 10 ) );  
      return dataset;         
   }
   
   private static JFreeChart createChart( PieDataset dataset ) {
      JFreeChart chart = ChartFactory.createPieChart(      
         "Mobile Sales",   // chart title 
         dataset,          // data    
         true,             // include legend   
         true, 
         false);

      return chart;
   }
   
   public static JPanel createDemoPanel( ) {
      JFreeChart chart = createChart(createDataset( ) );  
      return new ChartPanel( chart ); 
   }

   public static void main( String[ ] args ) {
      PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );  
      demo.setSize( 560 , 367 );    
      RefineryUtilities.centerFrameOnScreen( demo );    
      demo.setVisible( true ); 
   }
}

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

$javac PieChart_AWT.java  
$java PieChart_AWT

Se tudo estiver bem, ele irá compilar e executar para gerar o seguinte gráfico de pizza -

Se você não precisa incorporar seu gráfico em nenhum aplicativo, você pode criar imagens de gráfico no prompt de comando. JFreeChart permite que você salve imagens de gráficos nos formatos JPG ou PNG.

Criação de imagem JPEG

Vamos reescrever o exemplo acima para gerar uma imagem JPEG a partir de uma linha de comando. A seguir estão as duas APIs fornecidas pela biblioteca JFreeChart, que você pode usar para gerar imagens PNG ou JPEG de acordo com sua necessidade.

  • saveChartAsPNG() - API para salvar imagem em formato PNG.

  • saveChartAsJPEG() - API para salvar imagens em formato JPEG.

import java.io.*;

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

public class PieChart {
   
   public static void main( String[ ] args ) throws Exception {
      DefaultPieDataset dataset = new DefaultPieDataset( );
      dataset.setValue("IPhone 5s", new Double( 20 ) );
      dataset.setValue("SamSung Grand", new Double( 20 ) );
      dataset.setValue("MotoG", new Double( 40 ) );
      dataset.setValue("Nokia Lumia", new Double( 10 ) );

      JFreeChart chart = ChartFactory.createPieChart(
         "Mobile Sales",   // chart title
         dataset,          // data
         true,             // include legend
         true,
         false);
         
      int width = 640;   /* Width of the image */
      int height = 480;  /* Height of the image */ 
      File pieChart = new File( "PieChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

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

$javac PieChart.java  
$java PieChart

Se tudo estiver bem, ele irá compilar e executar para criar um arquivo de imagem JPEG chamado PieChart.jpeg em seu diretório atual.