我正在尝试使用我的Rails 3.1应用程序中的Highcharts显示标题为“随时间购买”的图表。
在我的函数中,我返回一个由created_at
日期(日期格式)和购买价值(整数格式)组成的数组。当我在视图中显示该功能时,它看起来像这样:
[2012-01-065002012-01-072502012-01-08130...]
转换为:[[2012-01-06,500],[2012-01-07,250],[2012-01-08,130]]
在Highcharts JS代码中的视图中,我有以下系列:
series: [{
name: '<%= User.product_names_by_user(current_user) %>',
pointInterval: <%= 1.day * 1000 %>,
pointStart: <%= User.from_the_first_purchase_date(current_user) %>,
data: <%= User.purchases_over_time(current_user) %>
}]
from_the_first_purchase_date
是一个只返回日期格式的第一个购买日期的函数。
purchases_over_time
是有问题的功能(如上所述)。
根据我对Highcharts API的理解(或缺乏),我可以使用具有两个值的数组列表作为图表的数据(Highcharts docs),而数组的第一个值表示x值,第二个是y值。
所以,我希望能够随着时间的推移绘制购买价值。在视图中,我的图表显示但没有显示数据,并且没有可见的绘图点。
我也尝试以下列格式返回数组无效:
[["2012-01-06", 500], ["2012-01-07", 250], ["2012-01-08", 130]]
有什么建议吗?
谢谢。
答案 0 :(得分:0)
您必须为xAxis指定datetime
类型:
xAxis: { type: 'datetime' }
您的x值应格式化为
[[Date.UTC(2012,0,6),500],[Date.UTC(2012,0,7),250],[Date.UTC(2012,0,8),130]]
注意,javascript Date.UTC
的月份定义从0(0 = 1月... 11 = 12月)开始
答案 1 :(得分:0)
或者您可以通过Date.parse
转换控制器中的日期时间,然后使用lazy-high-chart
gem将数据发送到查看器中的HightChart
。以下是lazy-high-chart
https://github.com/michelson/lazy_high_charts的网站。