2011年1月18日火曜日

groovyとgooglechartwrapperで折れ線グラフにマーカーを追加する

groovyとgooglechartwrapperで折れ線グラフにマーカーを追加するには、以下のコードを実行します。

import java.awt.*
import java.net.*
import javax.imageio.*
import de.toolforge.googlechartwrapper.*
import de.toolforge.googlechartwrapper.data.*
import de.toolforge.googlechartwrapper.label.*
import de.toolforge.googlechartwrapper.util.*
import de.toolforge.googlechartwrapper.style.*
import de.toolforge.googlechartwrapper.coder.*
import de.toolforge.googlechartwrapper.color.*

// 折れ線グラフ
lc = new LineChart(new Dimension(300, 250))
lc.setEncoder(EncoderFactory.getEncoder(
EncodingType.SimpleEncoding))

// データ追加(range 0-61)
data = new LineChartData.LineChartDataBuilder(
[5f, 12f, 15f, 45f, 55f]).legend(
new ChartLegend(URLEncoder.encode("商品1", "UTF-8"))).build()
// 線の色を設定
data.setColor(new Color(0x77, 0x99, 0xdd))
lc.addLineChartData(data)

// マーカーを設定
lc.addShapeMarker(
new ShapeMarker(ShapeMarker.MarkerTyp.Diamond,
new Color(0xcc, 0xdd, 0xff), 0/*= dataSetIndex*/,
ShapeMarker.DataPoint.newDrawEachPoint(),
20 /*= size */)
)

// データ追加(range 0-61)
data2 = new LineChartData.LineChartDataBuilder(
[25f, 35f, 55f, 35f, 60.5f]).legend(
new ChartLegend(URLEncoder.encode("商品2", "UTF-8"))).build()
// 線の色を追加
data2.setColor(new Color(0xf0, 0xc0, 0x40))
lc.addLineChartData(data2)

// X軸
xa = new AxisLabelContainer(AxisType.XAxis)
["2011/01", "2011/02", "2011/03", "2011/04", "2011/05"].each {
xa.addLabel(new AxisLabel(URLEncoder.encode(it, "UTF-8")))
}
lc.addAxisLabelContainer(xa)

// Y軸
ya = new AxisLabelContainer(AxisType.YAxis)
ya.setAxisRange(new AxisRange(0, 61))
lc.addAxisLabelContainer(ya)

// URLを取得
println lc.getUrl()
// 画像として保存
bi = MiscUtils.getBufferedImage(lc)
ImageIO.write(bi, "png", new File ("barchart22.png"))



実行画面


※以下のjarを$GROOVY_HOME/libにコピー
googlechartwrapper_1.1.jar

動作環境
groovy 1.7.5, JDK6 Update22, googlechartwrapper 1.1

関連情報
googlechartwrapperのwebサイト
http://code.google.com/p/googlechartwrapper/

0 件のコメント:

コメントを投稿