我安装了Chartkick 1.2.0和groupdate 1.0.4 gem。当我尝试做某事时:

  <%= area_chart Match.group_by_day_of_week(:created_at).count, :width=>"700px;", :height=>"150px;"  %>

我得到这个:

它总是给我错误的y轴。我应该如何格式化它以便显示“星期一”,“星期二” ...

我也无法解决的第二个示例是一天中按小时分组。
  <% abc=Matches.on_location(@location).group_by{|b| b.created_at.strftime("%H").to_i} %>
  <% abc.update(abc){|key, v| v.length} %>
  <%= abc=abc.sort_by{|k,v| k} %>
  <%= area_chart abc, :width=>"700px;", :height=>"150px;"  %>

我在做什么错,显示1:00:00 AM等?我只想有个数字,即:0、1、2、3 .. 23?

我四处搜寻,从上到下检查了他们的文档:http://ankane.github.io/chartkick/几个小时了,我真的不知道我错过了什么。任何帮助将不胜感激!

最佳答案

Chartkick的Github上的This thread表示,制图库(在您的情况下为Highcharts?)对所需的X轴类型进行了假设。猜测一下,我想说的是这里的问题是库做出了错误的假设,因此请尝试以更明显的格式命名输入的键。

在第一个示例中,您可以尝试使用"Monday""Tuesday"等作为键,而不是01等:

results = Match.group_by_day_of_week(:created_at).count # hash with numeric keys
days = %w(Monday Tuesday Wednesday Thursday Friday Saturday Sunday)
results = results.inject({}){|a, (k,v)| a.update(days[k] => v); a } # change numeric keys to weekday name

对于第二个示例,请尝试将日期格式设置为%H:%M:%S,这样显然您需要一个时间轴:
abc=Matches.on_location(@location).group_by{|b| b.created_at.strftime("%H:%M:%S")}

08-26 08:25