JFreeChart - Giao diện tệp

Cho đến nay, chúng tôi đã nghiên cứu cách tạo các loại biểu đồ khác nhau bằng API JFreeChart bằng cách sử dụng dữ liệu tĩnh. Nhưng trong môi trường sản xuất, dữ liệu được cung cấp dưới dạng tệp văn bản với định dạng xác định trước, hoặc nó đến trực tiếp từ cơ sở dữ liệu.

Chương này sẽ giải thích - cách chúng ta có thể đọc một dữ liệu đơn giản từ một tệp văn bản nhất định từ một vị trí nhất định và sau đó sử dụng JFreeChart để tạo biểu đồ mà bạn chọn.

Dữ liệu kinh doanh

Hãy xem xét chúng tôi có một tệp có tên mobile.txt, có các thương hiệu điện thoại di động khác nhau và doanh số của chúng (đơn vị mỗi ngày) được phân tách bằng dấu phẩy đơn giản (,) -

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

Tạo biểu đồ dựa trên tệp

Sau đây là mã để tạo Biểu đồ hình tròn dựa trên thông tin được cung cấp trong 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); 
   }
}

Hãy để chúng tôi giữ mã Java ở trên PieChart_File.java tệp, sau đó biên dịch và chạy nó từ lệnh được nhắc là -

$javac PieChart_File.java  
$java PieChart_File

Nếu mọi thứ đều ổn, nó sẽ biên dịch và chạy để tạo tệp ảnh JPEG có tên PieChart.jpeg có chứa biểu đồ sau.