JFreeChart - Çubuk Grafik

Bu bölüm, JFreeChart'ı nasıl kullanabileceğinizi gösterir. Bar Chart belirli bir iş verisi kümesinden.

Çubuk grafik, çeşitli kategorilerdeki karşılaştırmaları göstermek için farklı yönlendirme (yatay veya dikey) çubuklar kullanır. Grafiğin bir ekseni (alan ekseni) karşılaştırılan belirli alanı gösterir ve diğer eksen (aralık ekseni) ayrı değerleri temsil eder.

İş verisi

Aşağıdaki örnek, bir çubuk grafik yardımıyla çeşitli araba istatistiklerini göstermektedir. Aşağıda, bir çubuk grafik kullanarak göstereceğimiz, farklı özellikleriyle birlikte otomobil markalarının bir listesi yer almaktadır -

Araba Hız Kullanıcı oyu Millage Emniyet
Fiat 1.0 3.0 5.0 5.0
Audi 5.0 6.0 10.0 4.0
Ford 4.0 2.0 3.0 6.0

AWT Tabanlı Uygulama

Aşağıda, yukarıda verilen bilgilerden bir Çubuk Grafik oluşturma kodu verilmiştir. Bu kod, herhangi bir AWT tabanlı uygulamaya bir çubuk grafik yerleştirmenize yardımcı olur.

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 

public class BarChart_AWT extends ApplicationFrame {
   
   public BarChart_AWT( String applicationTitle , String chartTitle ) {
      super( applicationTitle );        
      JFreeChart barChart = ChartFactory.createBarChart(
         chartTitle,           
         "Category",            
         "Score",            
         createDataset(),          
         PlotOrientation.VERTICAL,           
         true, true, false);
         
      ChartPanel chartPanel = new ChartPanel( barChart );        
      chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) );        
      setContentPane( chartPanel ); 
   }
   
   private CategoryDataset createDataset( ) {
      final String fiat = "FIAT";        
      final String audi = "AUDI";        
      final String ford = "FORD";        
      final String speed = "Speed";        
      final String millage = "Millage";        
      final String userrating = "User Rating";        
      final String safety = "safety";        
      final DefaultCategoryDataset dataset = 
      new DefaultCategoryDataset( );  

      dataset.addValue( 1.0 , fiat , speed );        
      dataset.addValue( 3.0 , fiat , userrating );        
      dataset.addValue( 5.0 , fiat , millage ); 
      dataset.addValue( 5.0 , fiat , safety );           

      dataset.addValue( 5.0 , audi , speed );        
      dataset.addValue( 6.0 , audi , userrating );       
      dataset.addValue( 10.0 , audi , millage );        
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );        
      dataset.addValue( 2.0 , ford , userrating );        
      dataset.addValue( 3.0 , ford , millage );        
      dataset.addValue( 6.0 , ford , safety );               

      return dataset; 
   }
   
   public static void main( String[ ] args ) {
      BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics", 
         "Which car do you like?");
      chart.pack( );        
      RefineryUtilities.centerFrameOnScreen( chart );        
      chart.setVisible( true ); 
   }
}

Yukarıdaki Java kodunu şurada tutalım: BarChart_AWT.java dosyasını oluşturun ve ardından aşağıdaki gibi komut isteminde derleyin ve çalıştırın -

$javac BarChar_AWT.java  
$java BarChart_AWT

Her şey yolundaysa, aşağıdaki Çubuk Grafiği oluşturmak için derlenecek ve çalıştırılacaktır -

JPEG Görüntü Oluşturma

Bir komut satırından bir JPEG görüntüsü oluşturmak için yukarıdaki örneği yeniden yazalım.

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 BarChart {
   
   public static void main( String[ ] args )throws Exception {
      final String fiat = "FIAT";
      final String audi = "AUDI";
      final String ford = "FORD";
      final String speed = "Speed";
      final String millage = "Millage";
      final String userrating = "User Rating";
      final String safety = "safety";

      final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
      dataset.addValue( 1.0 , fiat , speed );
      dataset.addValue( 3.0 , fiat , userrating );
      dataset.addValue( 5.0 , fiat , millage );
      dataset.addValue( 5.0 , fiat , safety );

      dataset.addValue( 5.0 , audi , speed );
      dataset.addValue( 6.0 , audi , userrating );
      dataset.addValue( 10.0 , audi , millage );
      dataset.addValue( 4.0 , audi , safety );

      dataset.addValue( 4.0 , ford , speed );
      dataset.addValue( 2.0 , ford , userrating );
      dataset.addValue( 3.0 , ford , millage );
      dataset.addValue( 6.0 , ford , safety );

      JFreeChart barChart = ChartFactory.createBarChart(
         "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 BarChart = new File( "BarChart.jpeg" ); 
      ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height );
   }
}

Yukarıdaki Java kodunu BarChart.java dosyasında tutalım ve ardından aşağıdaki gibi komut istemiyle derleyip çalıştıralım -

$javac BarChart.java  
$java BarChart

Her şey yolundaysa, adında bir JPEG görüntü dosyası oluşturmak için derlenecek ve çalıştırılacaktır. BarChart.jpeg mevcut dizininizde.