2011年9月10日土曜日

棒グラフの色・影の設定


import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;

import org.jfree.chart.ChartColor;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;

public class swingTest {

 public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  JFrame frame = new JFrame("サンプル");

  // Xボタンが押された時の挙動
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  // ウインドウサイズ
  // ウインドウの表示場所とサイズ指定
  frame.setBounds(10, 10, 600, 400);

  // JFrameよりContentPaneを取得
  Container contentPane = frame.getContentPane();

  //グラフ作成
  // データ設定
  DefaultCategoryDataset dataset = new DefaultCategoryDataset();
  dataset.addValue(1000, "東京支店", "1月");
  dataset.addValue(2500, "ニューヨーク支店", "1月");
  dataset.addValue(1500, "ロンドン支店", "1月");
  dataset.addValue(1200, "東京支店", "2月");
  dataset.addValue(2900, "ニューヨーク支店", "2月");
  dataset.addValue(1400, "ロンドン支店", "2月");

  // グラフを生成する
  JFreeChart chart = ChartFactory.createBarChart("グラフタイトル", "店舗名", "売上額",
    dataset, PlotOrientation.VERTICAL, true, false, false);
  
  CategoryPlot plot = chart.getCategoryPlot();
  BarRenderer renderer = (BarRenderer)plot.getRenderer();

  // 影の設定
  renderer.setShadowVisible(false);
  
  // シリーズの色設定
  renderer.setSeriesPaint(0, ChartColor.RED);
  renderer.setSeriesPaint(1, ChartColor.BLUE);
  renderer.setSeriesPaint(2, ChartColor.YELLOW);
  
  //パネルにグラフを追加
  ChartPanel cpanel = new ChartPanel(chart);
  
  contentPane.add(cpanel, BorderLayout.CENTER);
  // ウィンドウを表示
  frame.setVisible(true);

 }
}

0 件のコメント:

コメントを投稿