如何使用pluck和Chartkick绘制多系列折线图?
多水果数量折线图绘制问题解决
数据表结构
现有如下结构的数据表:
| date | apples | pears | oranges |
|---|---|---|---|
| 1 | 3 | 2 | 0 |
| 2 | 1 | 5 | 0 |
| 3 | 0 | 2 | 1 |
| 4 | 0 | 0 | 1 |
| 5 | 0 | 1 | 1 |
单种水果折线图实现
可以通过以下代码按日期绘制单种水果的数量折线图(以苹果为例):
<%= line_chart FruitCount.pluck(:date, :apples), xtitle: "Date", ytitle: "Count" %>
多系列折线图问题及修正
尝试将三种水果的数量绘制在同一张图中时,以下代码无法运行:
<%= line_chart [ { name: Apples, data: FruitCount.pluck(:date, :apples) }, { name: Pears, data: FruitCount.pluck(:date, :pears) } { name: Oranges, data: FruitCount.pluck(:date, :oranges) } ], xtitle: "Date", ytitle: "Count" %>
问题原因
- 数组内第二个哈希与第三个哈希之间缺少逗号,导致Ruby语法错误
name字段的值未加引号,此处应使用字符串而非未定义的常量
修正后的代码
<%= line_chart [ { name: "Apples", data: FruitCount.pluck(:date, :apples) }, { name: "Pears", data: FruitCount.pluck(:date, :pears) }, { name: "Oranges", data: FruitCount.pluck(:date, :oranges) }, ], xtitle: "Date", ytitle: "Count" %>
内容的提问来源于stack exchange,提问作者user17647940
相关产品推荐
相关产品推荐

