JFreeChart檔案介面


到目前為止,我們學習了如何使用靜態資料的建立不同型別的JFreeChart API圖表。但在生產環境中,資料被設定在文字檔案的形式與一個預定義的格式,或者其直接來自資料庫。

本章將解釋如何我們可以看到從一個給定的位置給定的文字檔案,一個簡單的資料,然後使用JFreeChart建立圖表。

業務資料

假設我們有一個檔案名為mobile.txt,含有一個簡單的逗號分隔不同的移動品牌和銷售(每天單位)(,):

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

基於檔案圖表生成

下面是基於檔案 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); 
   }
}

讓我們儲存上面的Java程式碼在PieChart_File.java檔案,然後從命令提示字元下編譯並執行它,如下所示:

$javac PieChart_File.java 
$java PieChart_File 

如果一切順利,它會編譯並執行以建立包含下面的圖表名為PieChart.jpegthat JPEG影象檔案。

JFreeChart File Interface