今回は、CategoryDataset を要求するチャートのうち、LineChart と LineChart3D のサンプルを見ていきます。
CategoryDataset インスタンスの作成例
def dataset = new DefaultCategoryDataset() def m = 'Mass' def r = 'Radius' def d = 'Distance from Sun' def mE = 59.74d // 10^23 kg def rE = 12.8d // 10^6 m (diameter) def planet = 'Mercury' dataset.addValue(3.3d/mE, m, planet) dataset.addValue(4.9d/rE, r, planet) dataset.addValue(0.39d, d, planet) planet = 'Venus' dataset.addValue(48.7d/mE, m, planet) dataset.addValue(12.1d/rE, r, planet) dataset.addValue(0.72d, d, planet) planet = 'Earth' dataset.addValue(59.7d/mE, m, planet) dataset.addValue(12.8d/rE, r, planet) dataset.addValue(1.0d, d, planet) planet = 'Mars' data.addValue(6.4d/mE, m, planet) data.addValue(6.8d/rE, r, planet) data.addValue(1.5d, d, planet) planet = 'Jupiter' dataset.addValue(1.90e4d/mE, m, planet) dataset.addValue(143.0d/rE, r, planet) dataset.addValue(5.2d, d, planet) planet = 'Saturn' dataset.addValue(5.69e3d/mE, m, planet) dataset.addValue(120.5d/rE, r, planet) dataset.addValue(9.5d, d, planet) planet = 'Uranus' data.addValue(868d/mE, m, planet) data.addValue(51.1d/rE, r, planet) data.addValue(19.2d, d, planet) planet = 'Neptune' dataset.addValue(1.02e3d/mE, m, planet) dataset.addValue(49.6d/rE, r, planet) dataset.addValue(30.0d, d, planet)
- データはwikipedia:太陽系を参考にしています。 ただし、データ自体、どの程度信頼できるかは分かりません*1。
- addValue() メソッドの第1引数は数値なので他の引数と区別が付きますが、第2、第3の引数はどちらが何処に反映されるのかに注意。
Chart のサンプル
以下の例で createXxxxChart() メソッドに渡している PlotOrientation の定数は DomainAxis (x軸、横軸)、RangeAxis (y軸、縦軸)に何をあてるかを指定します。 指定できる定数は
- PlotOrientation.VERTICAL
- PlotOrientation.HORIZONTAL
の2つです。 これらは、互いに縦軸と横軸が入れ替わったチャートが表示されます。
LineChart
ChartFactory.createLineChart('Line Chart', 'Planet', 'Ratio to Earth', data, PlotOrientation.VERTICAL, true, true, true)
- 縦軸を対数軸に変更していますが、これには別途設定が必要です。
LineChart3D
ChartFactory.createLineChart3D('Line Chart 3D', 'Planet', 'Ratio to Earth', data, PlotOrientation.VERTICAL, true, true, true)
- 縦軸を対数軸に変更していますが、これには別途設定が必要です。