2015-01-26 2 views
0

У меня есть следующие структуры данных:Как может я группировать столбцы с Chartkick

@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 %> 

но он показывает пустой график. Каков способ группировки набора данных?

Это то, что я получаю от использования плана Google Chart APIs.

ответ

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 

Но это, вероятно, будет лучше сгенерировать свои данные в формате, близком к тому, что хочет начертить.

+0

@Luca Я смущен; вы пробовали мой код? Это похоже на http://imgur.com/4DITxU0, что почти так же, как ваш пример Google Charts. –

+0

да, он отлично работает. Спасибо также за предложение получить лучшие данные с самого начала, я попытаюсь усовершенствовать процесс :-) –

Смежные вопросы