javascript - Chartkick y 轴标签不正确

标签 javascript ruby-on-rails ruby charts ruby-on-rails-4

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

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

我明白了:

enter image description here

它总是给我错误的 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/几个小时了,我真的不知道我错过了什么。任何帮助将不胜感激!

最佳答案

This thread在 Chartkick 的 Github 上表明图表库(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")}

关于javascript - Chartkick y 轴标签不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591770/

相关文章:

JavaScript 鼠标单击 addEventListener 不工作

ruby-on-rails - 从 wiki 转换为 html

ruby-on-rails - 在 Ruby 中解析 csv 文件

ruby-on-rails - 如何在设计authenticate_user中删除html重定向

ruby-on-rails - Memcached 总是错过(rails)

javascript - 如何使用 JQuery 执行嵌套的 for-each 循环以获取特定的 li 元素?

javascript - 使用 Jquery 打印一个 div 内容

javascript - 如何使用 HTML 5 日期输入增加月份 - 将结果输出到 DOM

ruby - 向实例化对象添加方法

ruby - Ruby 中的 java 接口(interface)等价物是什么?