0

次のデータ構造があります。

@data = [['Year', 'Sales', 'Expenses', 'Profit'],
          ['2014', 1000, 400, 200],
          ['2015', 1170, 460, 250],
          ['2016', 660, 1120, 300],
          ['2017', 1030, 540, 350]]

年ごとにグループ化されたChartkickを使用して縦棒グラフを表示したいと考えています。Rails ビューで次のプラン呼び出しを試しました。

<%= column_chart @data %>

しかし、空のチャートが表示されます。データのセットをグループ化する方法は何ですか?

これは、Plan Google Chart APIsを使用して取得したものです。

4

1 に答える 1

3

データ構造を次のようにしたいと思います。

[
  {
    name: "Sales", 
    data: [
      ["2014", 1000], ["2015", 1170], ["2016", 660], ["2017", 1030]
    ]
  }, # ...
] 

おそらく、現在のデータ構造でこれを行う最も簡単な方法は次のようになります。

 data = [['Year', 'Sales', 'Expenses', 'Profit'],
   ['2014', 1000, 400, 200],
   ['2015', 1170, 460, 250],
   ['2016', 660, 1120, 300],
   ['2017', 1030, 540, 350]]

@data = (1..3).map do |i|
  {
    name: data.first[i],
    data: data[1..-1].map { |x| [ x[0], x[i] ] }
  }
end

しかし、chartkick が望んでいるものに近い形式でデータを生成する方がおそらく良いでしょう。

于 2015-01-26T19:03:22.590 に答える