今回は Charts プラグインを使ってグラフを描いてみます(一覧)。 前回までサンプルで使っていた「関数描画アプリケーション」への適用は次回に(予定)。
Charts プラグインは JFreeChart をベースにしたグラフ描画ツールで、Groovy の Builder を用いて構築できるようにする ChartBuilder も含まれています。 詳しくはこちら(といってもあんまり詳しく書いてませんが)。
Charts プラグインのインストール
まずは Charts プラグインをインストール。 以下のコマンドを実行します:
griffon install-plugin charts
さて、これで準備は万端。 チャートを描画するには次の2つの方法があります(他にもあるかな?)。
- JFreeChart の API で描く
- 別スクリプトに ChartBuilder で描く
今回見ていく方法は静的、つまり決まったデータで最初に描画し、以降変化しない方法です。 よって、今回扱うのは View のみ。 動的な描画は次回に考えます。 もしかしたら、描画方法が結構変わるかも知れませんがご了承を。
JFreeChart の API で描く
まずは JFreeChart の API を使う方法。 JFreeChart の使い方を詳細に見ていくのはこの記事の本筋からずれるのでここでは深入りしないことにします。 Griffon で特有なのは、作成した JFreeChart オブジェクトを chart ノードに渡すことです。 サンプルコードはこんな感じ:
// JFreeChart のクラスを import import org.jfree.chart.ChartFactory import org.jfree.data.general.DefaultPieDataset application(...) { chart(newChart()) // chart ノードに JFreeChart オブジェクトを渡す } // JFreeChart の API によってチャートを作成 def newChart(){ def dataset = new DefaultPieDataset(); dataset.with{ setValue('Apr', 10) setValue('May', 30) setValue('June', 40) } return ChartFactory.createPieChart('Pie Chart Sample', dataset, true, true, true) }
実行結果はこんな感じ:
別スクリプトに ChartBuilder で描く
次は ChartBuilder で描く方法。 チャートを構築するスクリプトは別ファイルに描くようにします。 最初にこのスクリプトを以下のコマンドで生成します:
griffon create-chart sample-pie
このコマンドによって「SamplePieChart.groovy」という Groovy ファイルが作成されます(接尾辞 "Chart" は自動で付与されます):
- ${baseDir}/griffon-app/charts/../SamplePieChart.groovy
「..」の部分はパッケージ階層に対応したフォルダ構造です。 このファイルは生成時に以下のような内容になっています:
import java.awt.Color import java.awt.Font import org.jfree.chart.labels.PieToolTipGenerator def largeFont = new Font("Arial", Font.BOLD, 15); piechart3d(title: "Simple Pie Chart") { defaultPieDataset { Series1(40.0f) Series2(30.0f) Series3(30.0f) } antiAlias = true backgroundPaint(Color.WHITE) pieplot { sectionOutlinesVisible false labelFont largeFont labelGap 0.02 toolTipGenerator ({ dataset, key -> return "[${dataset} ${key}]" as String } as PieToolTipGenerator) sectionPaint('Series1', paint: new Color(255,0,0)) sectionPaint('Series2', paint: new Color(0,255,0)) sectionPaint('Series3', paint: new Color(0,0,255)) } }
まぁ今回は動作確認なので、内容はこのままにしておきましょう。 View からこのチャートを描画するには、以下のように chart ノードにスクリプトの Class オブジェクトを渡します:
application(...) { chart(SamplePieChart.class) }
実行するとこんな感じ:
次回は Charts プラグインを「関数描画アプリケーション」に適用します(予定)。
Java Swing Hacks ―今日から使える驚きのGUIプログラミング集
- 作者: Joshua Marinacci,Chris Adamson,神戸博之(監訳),島田秋雄(監訳),加藤慶彦
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/04/01
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 100回
- この商品を含むブログ (38件) を見る