JFreeChart - 3D 餅圖/柱狀圖



3D 圖表是以三維格式顯示的圖表。您可以使用這些圖表來提供更好的顯示和清晰的資訊。3D 餅圖與餅圖相同,另外還具有漂亮的 3D 效果。可以透過新增少量額外的程式碼來實現 3D 效果,這些程式碼將負責在餅圖中建立 3D 效果。

3D 餅圖

考慮以下示例,以說明使用 3D 餅圖進行手機銷售。以下是不同手機品牌及其銷量(每天單位)的列表。

序號 手機品牌 銷量(每天單位)
1 Iphone 5S 20
2 三星 Grand 20
3 MOTO G 40
4 諾基亞 Lumia 10

以下是根據以上資訊建立 3D 餅圖的程式碼。此程式碼可幫助您將餅圖嵌入任何基於 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 );   
   }
}

讓我們將以上 Java 程式碼儲存在 PieChart3D.java 檔案中,然後從命令提示符中編譯並執行它,如下所示:

$javac PieChart3D.java  
$java PieChart3D 

如果一切正常,它將編譯並執行以建立一個名為 PieChart3D.jpeg 的 JPEG 影像檔案,其中包含以下 3D 餅圖:

JFreeChart PieChart3D

3D 柱狀圖

3D 柱狀圖與柱狀圖相同,另外還具有漂亮的 3D 效果。可以透過新增少量額外的程式碼來實現 3D 效果,這些程式碼將負責在柱狀圖中建立 3D 效果。考慮以下示例,該示例使用 3D 柱狀圖描繪各種汽車統計資料。以下是汽車品牌及其不同特徵的列表,我們將使用柱狀圖顯示這些特徵:

汽車 速度 使用者評分 里程 安全性
菲亞特 1.0 3.0 5.0 5.0
奧迪 5.0 6.0 10.0 4.0
福特 4.0 2.0 3.0 6.0

以下程式碼根據以上資訊建立 3D 柱狀圖。此程式碼可幫助您將柱狀圖嵌入任何基於 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);
   }
}

讓我們將以上 Java 程式碼儲存在 BarChart3D.java 檔案中,然後從命令提示符中編譯並執行它,如下所示:

$javac BarChart3D.java  
$java BarChart3

如果您的環境一切正常,它將編譯並執行以建立一個名為 BarChart3D.jpeg 的 JPEG 影像檔案,其中包含以下 3D 柱狀圖:

JFreeChart 3D Bar Chart
廣告

© . All rights reserved.