さぁ、やっとこさ GroovyChart のサンプルを動かすときがきた!
まずは groovychart サイトの「Examples of using JFreeChart」のページからサンプルを拝借(いくらか変更してます):
import javax.swing.WindowConstants as WC import com.thecoderscorner.groovychart.chart.ChartBuilder import groovy.swing.SwingBuilder import java.awt.* import org.jfree.chart.ChartPanel import org.jfree.chart.plot.* import static java.lang.Math.sqrt def areachart = new ChartBuilder().xyareachart( title:'BMI Index Graph', XAxisLabel: 'weight (Kg)', YAxisLabel: 'height (m)', orientation:PlotOrientation.VERTICAL, legend:true, tooltips:false, urls:false) { xyseries { for(int weight = 0; weight < 150; weight += 10) { point('Overweight', x: weight, y: sqrt(weight / 35.0d)) point('Normal', x: weight, y: sqrt(weight / 25.0d)) point('Underweight', x: weight, y: sqrt(weight / 18.0d)) } } xyplot { datasetRenderingOrder DatasetRenderingOrder.FORWARD foregroundAlpha(1.0f) rangeGridlinePaint(Color.BLACK) domainGridlinePaint(Color.BLACK) domainaxis { lowerBound(30) upperBound(135) } rangeaxis { lowerBound(0.75d) } xyitemrenderer { outlinePaint(Color.BLACK) outlineStroke(new BasicStroke()) seriesPaint(0, paint: new Color(0xff, 0, 0)) seriesPaint(1, paint: new Color(255,255,50)) seriesPaint(2, paint: new Color(0xff, 0x66, 0x33)) } } } def chartPanel = new ChartPanel(areachart.chart, false) chartPanel.preferredSize = [1000, 500] chartPanel.mouseZoomable = [true, false] def frame = new SwingBuilder().frame( title:'This is a Frame', location:[100,100], size:[800,400], defaultCloseOperation:WC.EXIT_ON_CLOSE){ widget(chartPanel) } frame.visible = true
これを表示すると
まぁ、一応成功っぽいケド、サンプルをとってきたページに載ってるのとは色が違いますねぇ。 あと、「ChartBuilder には xyitemrenderer ってプロパティがない」っていう「警告」が表示されます。 xyitemrenderre 下には色が設定されてるっぽいので、この要素は無視されてるようですね。
xyitemrenderer 要素を除いてみる
上記のサンプルで「警告」がでてるっぽい xyitemrenderer ノードを除いてサンプルを動かすと、「警告」が出ずに、同じチャートが表示されます。
xyitemrenderer ノードを renderer 要素に変えてみる
xyitemrenderer ノードの親ノード xyplot はおそらく XYPlot オブジェクトを生成してるので、XYPlot の JavaDoc を見てみると、「renderer」ってプロパティがあるので、試しに xyitemrenderer の代わりに renderer としてみると
xyplot { ... renderer { outlinePaint(Color.BLACK) outlineStroke(new BasicStroke()) seriesPaint(0, paint: new Color(0xff, 0, 0)) seriesPaint(1, paint: new Color(255,255,50)) seriesPaint(2, paint: new Color(0xff, 0x66, 0x33)) } }
案外すんなり動いてくれました。 色もきちんとセットされてます。
すばらしい!
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 146回
- この商品を含むブログ (121件) を見る