2010年2月28日日曜日

groovyとJFreeChartでローソク足グラフの枠の色を変更する

groovyとJFreeChartでローソク足グラフの枠の色を変更するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.xy.*

dohlcds = new DefaultOHLCDataset("A社",
[
new OHLCDataItem(
(new GregorianCalendar(2009,10,1)).time,
1100, // open
1200, // high
1000, // low
1150, // close
100 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,2)).time,
1140, // open
1250, // high
1010, // low
1020, // close
110 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,3)).time,
1020, // open
1280, // high
1040, // low
1190, // close
90 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,4)).time,
1200, // open
1340, // high
1140, // low
1330, // close
150 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,5)).time,
1320, // open
1440, // high
1300, // low
1470, // close
250 // volume
)
] as OHLCDataItem[])




jfc = ChartFactory.createCandlestickChart(
"株価推移",
"日付",
"株価",
dohlcds,
false)

// 時間のフォーマット
jfc.getPlot().getDomainAxis().setDateFormatOverride(
new java.text.SimpleDateFormat("MM/dd")
)
// アウトラインの色
jfc.getPlot().getRenderer().setUseOutlinePaint(true)
jfc.getPlot().getRenderer().setBaseOutlinePaint(
new java.awt.Color(0x22, 0x44, 0xff)
)

ChartUtilities.saveChartAsPNG(
new File("./candlestick-chart-color-outline.png"), jfc, 300, 200)


出力画像(candlestick-chart-color-outline.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月27日土曜日

groovyとJFreeChartでローソク足グラフの上昇時・下降時の色を設定する

groovyとJFreeChartでローソク足グラフの上昇時・下降時の色を設定するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.xy.*

dohlcds = new DefaultOHLCDataset("A社",
[
new OHLCDataItem(
(new GregorianCalendar(2009,10,1)).time,
1100, // open
1200, // high
1000, // low
1150, // close
100 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,2)).time,
1140, // open
1250, // high
1010, // low
1020, // close
110 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,3)).time,
1020, // open
1280, // high
1040, // low
1190, // close
90 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,4)).time,
1200, // open
1340, // high
1140, // low
1330, // close
150 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,5)).time,
1320, // open
1440, // high
1300, // low
1470, // close
250 // volume
)
] as OHLCDataItem[])




jfc = ChartFactory.createCandlestickChart(
"株価推移",
"日付",
"株価",
dohlcds,
false)

// 時間のフォーマット
jfc.getPlot().getDomainAxis().setDateFormatOverride(
new java.text.SimpleDateFormat("MM/dd")
)
// 上昇時の色
jfc.getPlot().getRenderer().setUpPaint(
new java.awt.Color(0x77, 0x99, 0xdd)
)
// 下落時の色
jfc.getPlot().getRenderer().setDownPaint(
new java.awt.Color(0xdd, 0x99, 0x77)
)

ChartUtilities.saveChartAsPNG(
new File("./candlestick-chart-color-updown.png"), jfc, 300, 200)


出力画像(candlestick-chart-color-updown.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月26日金曜日

groovyとJFreeChartでローソク足グラフの取引量棒グラフの色を変更する

groovyとJFreeChartでローソク足グラフの取引量棒グラフの色を変更するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.xy.*

dohlcds = new DefaultOHLCDataset("A社",
[
new OHLCDataItem(
(new GregorianCalendar(2009,10,1)).time,
1100, // open
1200, // high
1000, // low
1150, // close
100 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,2)).time,
1140, // open
1250, // high
1010, // low
1020, // close
110 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,3)).time,
1020, // open
1280, // high
1040, // low
1190, // close
90 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,4)).time,
1200, // open
1340, // high
1140, // low
1330, // close
150 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,5)).time,
1320, // open
1440, // high
1300, // low
1470, // close
250 // volume
)
] as OHLCDataItem[])




jfc = ChartFactory.createCandlestickChart(
"株価推移",
"日付",
"株価",
dohlcds,
false)

// 時間のフォーマット
jfc.getPlot().getDomainAxis().setDateFormatOverride(
new java.text.SimpleDateFormat("MM/dd")
)
// 取引量の色設定
jfc.getPlot().getRenderer().setVolumePaint(
new java.awt.Color(0xff, 0xff, 0xe0)
)

ChartUtilities.saveChartAsPNG(
new File("./candlestick-chart-color-ch.png"), jfc, 300, 200)


出力画像(candlestick-chart-color-ch.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月25日木曜日

groovyとJFreeChartでローソク足グラフを描画する

groovyとJFreeChartでローソク足グラフを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.xy.*

dohlcds = new DefaultOHLCDataset("A社",
[
new OHLCDataItem(
(new GregorianCalendar(2009,10,1)).time,
1100, // open
1200, // high
1000, // low
1150, // close
100 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,2)).time,
1140, // open
1250, // high
1010, // low
1020, // close
110 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,3)).time,
1020, // open
1280, // high
1040, // low
1190, // close
90 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,4)).time,
1200, // open
1340, // high
1140, // low
1330, // close
150 // volume
),
new OHLCDataItem(
(new GregorianCalendar(2009,10,5)).time,
1320, // open
1440, // high
1300, // low
1470, // close
250 // volume
)
] as OHLCDataItem[])




jfc = ChartFactory.createCandlestickChart(
"株価推移",
"日付",
"株価",
dohlcds,
false)

// 時間のフォーマット
jfc.getPlot().getDomainAxis().setDateFormatOverride(
new java.text.SimpleDateFormat("MM/dd")
)

ChartUtilities.saveChartAsPNG(
new File("./candlestick-chart.png"), jfc, 300, 200)


出力画像(candlestick-chart.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月24日水曜日

groovyとJFreeChartで時系列グラフを描画する

groovyとJFreeChartで時系列グラフを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.time.*


ts1 = new TimeSeries("A店")
// Hour(int hour, int day, int month, int year)
ts1.add(new Hour(9, 1, 2, 2010), 8d)
ts1.add(new Hour(10, 1, 2, 2010), 9d)
ts1.add(new Hour(11, 1, 2, 2010), 20d)
ts1.add(new Hour(12, 1, 2, 2010), 42d)
ts1.add(new Hour(13, 1, 2, 2010), 32d)
ts1.add(new Hour(14, 1, 2, 2010), 5d)
ts1.add(new Hour(15, 1, 2, 2010), 6d)
ts1.add(new Hour(17, 1, 2, 2010), 12d)
ts1.add(new Hour(18, 1, 2, 2010), 22d)
ts1.add(new Hour(19, 1, 2, 2010), 21d)
ts1.add(new Hour(20, 1, 2, 2010), 18d)
ts1.add(new Hour(21, 1, 2, 2010), 17d)

ts2 = new TimeSeries("B店")
ts2.add(new Hour(9, 1, 2, 2010), 10d)
ts2.add(new Hour(10, 1, 2, 2010), 7d)
ts2.add(new Hour(11, 1, 2, 2010), 6d)
ts2.add(new Hour(12, 1, 2, 2010), 32d)
ts2.add(new Hour(13, 1, 2, 2010), 22d)
ts2.add(new Hour(14, 1, 2, 2010), 2d)
ts2.add(new Hour(15, 1, 2, 2010), 3d)
ts2.add(new Hour(17, 1, 2, 2010), 9d)
ts2.add(new Hour(18, 1, 2, 2010), 18d)
ts2.add(new Hour(19, 1, 2, 2010), 22d)
ts2.add(new Hour(20, 1, 2, 2010), 32d)
ts2.add(new Hour(21, 1, 2, 2010), 33d)

tsc = new TimeSeriesCollection()
tsc.addSeries(ts1)
tsc.addSeries(ts2)

jfc = ChartFactory.createTimeSeriesChart(
"時間別売上推移",
"店舗",
"売上",
tsc,
true,
false,
false)


ChartUtilities.saveChartAsPNG(
new File("./time-series-chart.png"), jfc, 300, 200)


出力画像(time-series-chart.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月23日火曜日

groovyとJFreeChartで積上棒グラフを描画する

groovyとJFreeChartで積上棒グラフを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(80, "A店", "Jan 2010")
addValue(110, "A店", "Feb 2010")
addValue(120, "A店", "Mar 2010")
addValue(50, "B店", "Jan 2010")
addValue(120, "B店", "Feb 2010")
addValue(80, "B店", "Mar 2010")
}

jfc = ChartFactory.createStackedBarChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)


ChartUtilities.saveChartAsPNG(
new File("./stacked-bar-chart.png"), jfc, 300, 200)


出力画像(stacked-bar-chart.png)
JFreeChartとgroovyで描画した積上棒グラフ

動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月22日月曜日

groovyとJFreeChartで積上エリアチャートを描画する

groovyとJFreeChartで積上エリアチャートを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.category.*

dcd = new DefaultCategoryDataset()
dcd.with {
addValue(80, "A店", "Jan 2010")
addValue(110, "A店", "Feb 2010")
addValue(120, "A店", "Mar 2010")
addValue(50, "B店", "Jan 2010")
addValue(120, "B店", "Feb 2010")
addValue(80, "B店", "Mar 2010")
}

jfc = ChartFactory.createStackedAreaChart(
"売上推移",
"年月",
"売上",
dcd,
PlotOrientation.VERTICAL,
true,
false,
false)



ChartUtilities.saveChartAsPNG(
new File("./stacked-area-chart.png"), jfc, 300, 200)


出力画像(stacked-area-chart.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

2010年2月21日日曜日

groovyとJFreeChartで円グラフを描画する

groovyとJFreeChartで円グラフを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.general.*


dpd = new DefaultPieDataset()
dpd.insertValue(0, "A社製品", 32.0d)
dpd.insertValue(1, "B社製品", 31.5d)
dpd.insertValue(2, "C社製品", 28.5d)
dpd.insertValue(3, "その他", 8.0d)

// パイチャート
jfc = ChartFactory.createPieChart(
"製品シェア",
dpd,
true,
true,
false)

ChartUtilities.saveChartAsPNG(
new File("./pie-chart.png"), jfc, 300, 200)


出力画像(pie-chart.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16

groovyとJFreeChartでヒストグラムを描画する

groovyとJFreeChartでヒストグラムを描画するには、以下のコードを実行します。

import org.jfree.chart.*
import org.jfree.chart.plot.*
import org.jfree.data.statistics.*

hd = new HistogramDataset()
hd.addSeries("製品A",
[80, 82, 83, 76, 85, 99, 100, 97, 84, 83,
85, 85, 87, 83, 87, 84, 93, 87, 82, 84] as double[],
20)
hd.addSeries("製品B",
[90, 91, 95, 98, 99, 100, 100, 84, 98, 97,
95, 96, 95, 94, 94, 100, 97, 95, 98, 88] as double[],
20)

// ヒストグラム
jfc = ChartFactory.createHistogram(
"製品評価分布",
"スコア",
"カウント",
hd,
PlotOrientation.VERTICAL,
true,
false,
false)

ChartUtilities.saveChartAsPNG(
new File("./histogram.png"), jfc, 300, 200)


出力画像(histogram.png)


動作環境
JDK1.6 Update 15, groovy 1.6.3, JFreeChart1.0.13, JCommon1.0.16