倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Dataset で分類する Chart あれこれ (4) : CategoryDataset と StackedXxxxChart, MultiplePieChart など

今回も、前回に続いて CategoryDataset を要求するチャートを見ていきます。

今回見ていくチャートは

  • StackedBarChart
  • StackedBarChart3D
  • StackedAreaChart
  • MultiplePieChart
  • MultiplePieChart3D
  • WaterfallChart

の6つです。

CategoryDataset インスタンスの作成例


上記のチャートは、前回のものと同じく CategoryDataset を要求しますが、それらのデータはスタックされること(つまりデータが順次加算されること、累積されること)に意味がなければいけません。 したがって、今回は前回と異なったデータをサンプルに使用することにします。

        def dataset = new DefaultCategoryDataset()
        def planet

        planet = 'Venus'
        dataset.addValue(96.5d, 'Carbon dioxide', planet)
        dataset.addValue(3.5d, 'Nitrogen', planet)

        planet = 'Earth'
        dataset.addValue(78.084d, 'Nitrogen', planet)
        dataset.addValue(20.946d, 'Oxygen', planet)
        dataset.addValue(0.9340d, 'Argon', planet)
        dataset.addValue(0.0390d, 'Carbon dioxide', planet)

        planet = 'Mars'
        dataset.addValue(95.32d, 'Carbon dioxide', planet)
        dataset.addValue(2.7d, 'Nitrogen', planet)
        dataset.addValue(1.6d, 'Argon', planet)
        dataset.addValue(0.13d, 'Oxygen', planet)

このデータセットの例では、各惑星 (Venus, Earth, Mars) に関して、それぞれの気体 (Carbon dioxide, Nitrogen, etc) を加えていけば、全体として(約)100%になるようになっています。

StackedXxxxChart


StackedBarChart

ChartFactory.createStackedBarChart(
        'Stacked Bar Chart', 'Planet', 'Atmosphere Composition', dataset, 
        PlotOrientation.VERTICAL, true, true, true)

StackedBarChart3D

ChartFactory.createStackedBarChart3D(
        'Stacked Bar Chart 3D', 'Planet', 'Atmosphere Composition',
        dataset, PlotOrientation.VERTICAL, true, true, true)

StackedAreaChart

ChartFactory.createStackedAreaChart(
        'Stacked Area Chart', 'Planet', 'Atmosphere Composition',
        dataset, PlotOrientation.VERTICAL, true, true, true)

MultiplePieChart, MultiplePieChart3D


MulitplePieChart, MultiplePieChart3D は、以前の記事で見た PieChart, PieChart3D を複数同時に(カテゴリ別に)表示させるチャートです。

これらのチャートを生成する creatMultiplePieChart(), createMultiplePieChart3D() メソッドに渡す TableOrder の定数は、どのカテゴリごとに円グラフを描くかを指定します(実際に渡す定数を変えて表示させてみると違いが分かりやすいかと)。 指定できる定数は

  • TableOrder.BY_ROW
  • TableOrder.BY_COLUMN

の2つです。

MultiplePieChart

ChartFactory.createMultiplePieChart(
        'Multiple Pie Chart', dataset, TableOrder.BY_COLUMN, true, true, true)

MutiplePieChart3D

ChartFactory.createMultiplePieChart3D(
        'Multiple Pie Chart 3D', data, TableOrder.BY_COLUMN, true, true, true)

Waterfall Chart


WaterfallChart を表示させようとすると、イマイチうまくいかなかったので、ここでは省略。 Waterfall Chart については、例えばこちらを参照。