JFreeChart - XY Grafiği
XY grafiği (dağılım), X ve Y değerleri listesinden oluşan bir veri serisine dayanır. Her değer çifti (X, Y) bir koordinat sistemindeki bir noktadır. Burada bir değer yatay (X) konumu, diğeri ise dikey (Y) konumu belirler. Bu bölüm gösteriyor - JFreeChart'ı nasıl kullanabileceğimiziXY Chart belirli bir iş verisi kümesinden.
İş verisi
Tüm büyük tarayıcılar için bir XY grafiği oluşturmak istediğimiz bir örnek düşünün. Burada, aşağıda gösterildiği gibi farklı insan kategorilerinden farklı performans puanları toplanır -
Firefox | Kategori (X) | Puan (Y) |
---|---|---|
1.0 | 1.0 | |
2.0 | 4.0 | |
3.0 | 3.0 | |
Chrome | Kategori (X) | Puan (Y) |
1.0 | 4.0 | |
2.0 | 5.0 | |
3.0 | 6.0 | |
IE | Kategori (X) | Puan (Y) |
3.0 | 4.0 | |
4.0 | 5.0 | |
5.0 | 4.0 |
AWT Tabanlı Uygulama
Aşağıda, yukarıda verilen bilgilerden bir XY Grafiği oluşturma kodu verilmiştir. Bu kod, herhangi bir AWT tabanlı uygulamaya bir XY grafiği yerleştirmenize yardımcı olur.
import java.awt.Color;
import java.awt.BasicStroke;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
public class XYLineChart_AWT extends ApplicationFrame {
public XYLineChart_AWT( String applicationTitle, String chartTitle ) {
super(applicationTitle);
JFreeChart xylineChart = ChartFactory.createXYLineChart(
chartTitle ,
"Category" ,
"Score" ,
createDataset() ,
PlotOrientation.VERTICAL ,
true , true , false);
ChartPanel chartPanel = new ChartPanel( xylineChart );
chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );
final XYPlot plot = xylineChart.getXYPlot( );
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer( );
renderer.setSeriesPaint( 0 , Color.RED );
renderer.setSeriesPaint( 1 , Color.GREEN );
renderer.setSeriesPaint( 2 , Color.YELLOW );
renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );
renderer.setSeriesStroke( 1 , new BasicStroke( 3.0f ) );
renderer.setSeriesStroke( 2 , new BasicStroke( 2.0f ) );
plot.setRenderer( renderer );
setContentPane( chartPanel );
}
private XYDataset createDataset( ) {
final XYSeries firefox = new XYSeries( "Firefox" );
firefox.add( 1.0 , 1.0 );
firefox.add( 2.0 , 4.0 );
firefox.add( 3.0 , 3.0 );
final XYSeries chrome = new XYSeries( "Chrome" );
chrome.add( 1.0 , 4.0 );
chrome.add( 2.0 , 5.0 );
chrome.add( 3.0 , 6.0 );
final XYSeries iexplorer = new XYSeries( "InternetExplorer" );
iexplorer.add( 3.0 , 4.0 );
iexplorer.add( 4.0 , 5.0 );
iexplorer.add( 5.0 , 4.0 );
final XYSeriesCollection dataset = new XYSeriesCollection( );
dataset.addSeries( firefox );
dataset.addSeries( chrome );
dataset.addSeries( iexplorer );
return dataset;
}
public static void main( String[ ] args ) {
XYLineChart_AWT chart = new XYLineChart_AWT("Browser Usage Statistics",
"Which Browser are you using?");
chart.pack( );
RefineryUtilities.centerFrameOnScreen( chart );
chart.setVisible( true );
}
}
Yukarıdaki Java kodunu şurada tutalım: XYLineChart_AWT.java dosyasını açın ve ardından aşağıdaki gibi komut isteminden derleyin ve çalıştırın:
$javac XYLineChart_AWT.java
$java XYLineChart_AWT
Her şey yolundaysa, aşağıdaki XY Grafiğini oluşturmak için derlenecek ve çalıştırılacaktır -
JPEG Görüntü Oluşturma
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.data.xy.XYSeries;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.ChartUtilities;
public class XYLineChart_image {
public static void main( String[ ] args )throws Exception {
final XYSeries firefox = new XYSeries( "Firefox" );
firefox.add( 1.0 , 1.0 );
firefox.add( 2.0 , 4.0 );
firefox.add( 3.0 , 3.0 );
final XYSeries chrome = new XYSeries( "Chrome" );
chrome.add( 1.0 , 4.0 );
chrome.add( 2.0 , 5.0 );
chrome.add( 3.0 , 6.0 );
final XYSeries iexplorer = new XYSeries( "InternetExplorer" );
iexplorer.add( 3.0 , 4.0 );
iexplorer.add( 4.0 , 5.0 );
iexplorer.add( 5.0 , 4.0 );
final XYSeriesCollection dataset = new XYSeriesCollection( );
dataset.addSeries( firefox );
dataset.addSeries( chrome );
dataset.addSeries( iexplorer );
JFreeChart xylineChart = ChartFactory.createXYLineChart(
"Browser usage statastics",
"Category",
"Score",
dataset,
PlotOrientation.VERTICAL,
true, true, false);
int width = 640; /* Width of the image */
int height = 480; /* Height of the image */
File XYChart = new File( "XYLineChart.jpeg" );
ChartUtilities.saveChartAsJPEG( XYChart, xylineChart, width, height);
}
}
Yukarıdaki Java kodunu şurada tutalım: XYLineChart_image.java dosyasını açın ve ardından aşağıdaki gibi komut isteminde derleyin ve çalıştırın -
$javac XYLineChart_image.java
$java XYLineChart_image
Her şey yolundaysa, adında bir JPEG görüntü dosyası oluşturmak için derlenecek ve çalıştırılacaktır. XYLineChart.jpeg mevcut dizininizde.