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
 

上一篇: JFreeChart時序圖 下一篇: JFreeChart資料庫介面