Jfreechart-xy-chart
JFreeChart-XYチャート
XYチャート(散布図)は、X値とY値のリストで構成される1つのデータ系列に基づいています。 各値ペア(X、Y)は座標系のポイントです。 ここで、1つの値は水平(X)位置を決定し、もう1つの値は垂直(Y)位置を決定します。 この章では、JFreeChartを使用して、ビジネスデータの特定のセットから* XYチャート*を作成する方法を示します。
ビジネスデータ
すべての主要なブラウザーのXYチャートを作成する例を考えてみましょう。 ここでは、以下に示すように、さまざまなカテゴリの人々からさまざまなパフォーマンススコアが収集されます-
*Firefox*
カテゴリー(X)
スコア(Y)
1.0
1.0
2.0
4.0
3.0
3.0
クロム
カテゴリー(X)
スコア(Y)
1.0
4.0
2.0
5.0
3.0
6.0
IE
カテゴリー(X)
スコア(Y)
3.0
4.0
4.0
5.0
5.0
4.0
AWTベースのアプリケーション
以下は、上記の情報からXYチャートを作成するコードです。 このコードは、AWTベースのアプリケーションにXYチャートを埋め込むのに役立ちます。
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 );
}
}
上記のJavaコードを XYLineChart_AWT.java ファイルに保持し、プロンプトが表示されたコマンドからコンパイルして実行します。
$javac XYLineChart_AWT.java
$java XYLineChart_AWT
すべてがうまくいけば、コンパイルして実行し、次のXYグラフを生成します-
JPEG画像作成
上記の例を書き直して、コマンドラインからJPEGイメージを生成します。
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);
}
}
上記のJavaコードを XYLineChart_image.java ファイルに保存し、プロンプトが表示されたコマンドからコンパイルして実行します。
$javac XYLineChart_image.java
$java XYLineChart_image
すべてが正常であれば、コンパイルして実行し、現在のディレクトリに XYLineChart.jpeg という名前のJPEGイメージファイルを作成します。