JFreeChart - Gráfico de barras / pizza 3D

Os gráficos 3D são os que aparecem em formato tridimensional. Você pode usar esses gráficos para fornecer uma exibição melhor e informações claras. Um gráfico de pizza 3D é igual ao gráfico de pizza, além de um bom efeito 3D. Um efeito 3D pode ser obtido adicionando um pequeno código extra, que cuidará da criação do efeito 3D em um gráfico de pizza.

Gráfico circular 3D

Considere o exemplo a seguir para ilustrar a venda móvel com a ajuda de um gráfico de pizza 3D. 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

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

import java.io.*; 

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

public class PieChart3D {

   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.createPieChart3D( 
         "Mobile Sales" ,  // chart title                   
         dataset ,         // data 
         true ,            // include legend                   
         true, 
         false);

      final PiePlot3D plot = ( PiePlot3D ) chart.getPlot( );             
      plot.setStartAngle( 270 );             
      plot.setForegroundAlpha( 0.60f );             
      plot.setInteriorGap( 0.02 );             
      int width = 640;   /* Width of the image */             
      int height = 480;  /* Height of the image */                             
      File pieChart3D = new File( "pie_Chart3D.jpeg" );                           
      ChartUtilities.saveChartAsJPEG( pieChart3D , chart , width , height );   
   }
}

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

$javac PieChart3D.java  
$java PieChart3D

Se tudo estiver bem, ele irá compilar e executar para criar um arquivo de imagem JPEG chamado PieChart3D.jpeg tendo o seguinte gráfico circular 3D -

Gráfico de Barras 3D

Um gráfico de barras 3D é igual ao gráfico de barras, além de ter um belo efeito 3D. Um efeito 3D pode ser obtido adicionando um pequeno código extra, que cuidará da criação do efeito 3D em um gráfico de barras. Considere o exemplo a seguir que mostra várias estatísticas do carro com a ajuda de um gráfico de barras 3D. A seguir está uma lista de marcas de automóveis com suas diferentes características, que mostraremos em um gráfico de barras -

Carro Rapidez Avaliação do utilizador Millage Segurança
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

O código a seguir cria um gráfico de barras 3D a partir das informações fornecidas acima. Este código ajuda você a incorporar um gráfico de barras em qualquer aplicativo baseado em AWT.

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 BarChart3D {
   
   public static void main( String[ ] args )throws Exception {
      final String fait = "FAIT";              
      final String audi = "AUDI";              
      final String ford = "FORD";              
      final String speed = "Speed";              
      final String popular = "Popular";              
      final String mailage = "Mailage";              
      final String userrating = "User Rating";              
      final String safety = "safety";        
      final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); 

      dataset.addValue( 1.0 , fait , speed );              
      dataset.addValue( 4.0 , fait , popular );              
      dataset.addValue( 3.0 , fait , userrating );              
      dataset.addValue( 5.0 , fait , mailage );              
      dataset.addValue( 5.0 , fait , safety );              
      
      dataset.addValue( 5.0 , audi , speed );              
      dataset.addValue( 7.0 , audi , popular );              
      dataset.addValue( 6.0 , audi , userrating );              
      dataset.addValue( 10.0 , audi , mailage );              
      dataset.addValue( 4.0 , audi , safety ); 
      
      dataset.addValue( 4.0 , ford , speed );              
      dataset.addValue( 3.0 , ford , popular );              
      dataset.addValue( 2.0 , ford , userrating );              
      dataset.addValue( 3.0 , ford , mailage );              
      dataset.addValue( 6.0 , ford , safety );                 
      
      JFreeChart barChart = ChartFactory.createBarChart3D(
         "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 barChart3D = new File( "barChart3D.jpeg" );                            
      ChartUtilities.saveChartAsJPEG( barChart3D, barChart, width, height);
   }
}

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

$javac BarChart3D.java  
$java BarChart3

Se tudo estiver bem com o seu ambiente, ele irá compilar e executar para criar um arquivo de imagem JPEG BarChart3D.jpeg tendo o seguinte gráfico de barras 3D -