JFreeChart - Biểu đồ hình tròn

Trong biểu đồ hình tròn, độ dài cung của mỗi cung tỷ lệ với số lượng mà nó biểu diễn. Chương này giải thích - cách chúng ta có thể sử dụng JFreeChart để tạoPie Chart từ một tập hợp dữ liệu kinh doanh nhất định.

Dữ liệu kinh doanh

Ví dụ sau đây mô tả hoạt động bán hàng trên thiết bị di động với sự trợ giúp của biểu đồ hình tròn. Sau đây là danh sách các thương hiệu di động khác nhau và lượng bán của chúng (đơn vị mỗi ngày).

S. không Thương hiệu Di động Bán hàng (UNITS mỗi ngày)
1 Iphone 5s 20
2 Samsung Grand 20
3 MOTO G 40
4 Nokia Lumia 10

Ứng dụng dựa trên AWT

Sau đây là mã để tạo Biểu đồ hình tròn bằng cách sử dụng thông tin đã cho ở trên. Mã này giúp bạn nhúng biểu đồ hình tròn vào bất kỳ ứng dụng dựa trên AWT nào.

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
 
public class PieChart_AWT extends ApplicationFrame {
   
   public PieChart_AWT( String title ) {
      super( title ); 
      setContentPane(createDemoPanel( ));
   }
   
   private static PieDataset createDataset( ) {
      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 ) );  
      return dataset;         
   }
   
   private static JFreeChart createChart( PieDataset dataset ) {
      JFreeChart chart = ChartFactory.createPieChart(      
         "Mobile Sales",   // chart title 
         dataset,          // data    
         true,             // include legend   
         true, 
         false);

      return chart;
   }
   
   public static JPanel createDemoPanel( ) {
      JFreeChart chart = createChart(createDataset( ) );  
      return new ChartPanel( chart ); 
   }

   public static void main( String[ ] args ) {
      PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );  
      demo.setSize( 560 , 367 );    
      RefineryUtilities.centerFrameOnScreen( demo );    
      demo.setVisible( true ); 
   }
}

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

$javac PieChart_AWT.java  
$java PieChart_AWT

Nếu mọi thứ đều ổn, nó sẽ biên dịch và chạy để tạo Biểu đồ hình tròn sau:

Nếu bạn không cần nhúng biểu đồ của mình vào bất kỳ ứng dụng nào, thì bạn có thể tạo hình ảnh biểu đồ tại dấu nhắc lệnh. JFreeChart cho phép bạn lưu hình ảnh biểu đồ ở định dạng JPG hoặc PNG.

Tạo ảnh JPEG

Chúng ta hãy viết lại ví dụ trên để tạo ảnh JPEG từ một dòng lệnh. Sau đây là hai API do thư viện JFreeChart cung cấp, bạn có thể sử dụng để tạo hình ảnh PNG hoặc JPEG theo yêu cầu của mình.

  • saveChartAsPNG() - API để lưu hình ảnh ở định dạng PNG.

  • saveChartAsJPEG() - API để lưu ảnh ở định dạng JPEG.

import java.io.*;

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

public class PieChart {
   
   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.createPieChart(
         "Mobile Sales",   // chart title
         dataset,          // data
         true,             // include legend
         true,
         false);
         
      int width = 640;   /* Width of the image */
      int height = 480;  /* Height of the image */ 
      File pieChart = new File( "PieChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
   }
}

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

$javac PieChart.java  
$java PieChart

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 trong thư mục hiện tại của bạn.