如何使用 Chartkick 对列进行分组
How can I group columns with 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 得到的结果。
我认为您希望数据结构如下所示:
[
{
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 想要的格式生成数据。
我有以下数据结构:
@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 得到的结果。
我认为您希望数据结构如下所示:
[
{
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 想要的格式生成数据。