javascript - Highcharts、Rails - 设置图表起点的方法?

标签 javascript ruby-on-rails highcharts

在我的图表上,我尝试更改图表的起点,但不起作用:

series: [{
            name: 'Difficulty',
            connectNulls:true,
            color: '#FF0000',
            pointInterval: <%= 1.day * 1000 %>,
            pointStart: <%= 2.weeks.ago.at_midnight.to_i * 1000 %>,
            data: [<% HomeworkStudent.where(:school_user_id => current_user.school_user.id).order('updated_at ASC').each do | homework_student| %>
            [Date.parse(<%= homework_student.updated_at.to_json.html_safe %>), <%= homework_student.difficulty.to_json.html_safe %>],
            <% end %>]
            },

我的图表可以工作,但 pointStart 被忽略。如上所述,我尝试在表中使用 Updated_at 属性。我知道上面的代码可能不是使用 Highcharts 获取和渲染数据的理想方式,因此也欢迎任何清理它的建议。

我需要进行哪些更改才能使 pointStart 正常工作?

谢谢

enter image description here

最佳答案

首先,您需要将数据中的x-axis更改为纪元,或将图表中的间隔更改为不以毫秒为单位(纪元时间)。

所以,您的数据应该更像是:

data: <%= HomeworkStudent.
    where(:school_user_id => current_user.school_user.id).
    order('updated_at ASC').map {|e| [e.updated_at.to_i * 1000, e.id]}.
    to_a.to_json.html_safe %>

也许您还应该针对您选择的内容添加一个过滤器。它不应早于两周前:

data: <%= HomeworkStudent.
    where(:school_user_id => current_user.school_user.id).
    where('updated_at > ?', 2.weeks.ago.at_midnight).
    order('updated_at ASC').map {|e| [e.updated_at.to_i * 1000, e.id]}.
    to_a.to_json.html_safe %>

除此之外,您当然可以使用不是数字的标签,而是实际的单词。这有点复杂......

...或不...

您跳过(如“根本不使用”)以下内容:

pointInterval: <%= 1.day * 1000 %>,
pointStart: <%= 2.weeks.ago.at_midnight.to_i * 1000 %>,

并在数据数组中使用数据值对:

data: <%= HomeworkStudent.
    where(:school_user_id => current_user.school_user.id).
    where('updated_at > ?', 2.weeks.ago.at_midnight).
    order('updated_at ASC').
    group_by {|e| e.updated_at.to_date}. # Group them rails-wise, not db-engine specific
    map {|e| [e.first.to_s, e.second.sum(&:difficulty)] }. # get date and sum of difficulties, format e.first as you wish with **strftime**
    to_json.html_safe %>

关于javascript - Highcharts、Rails - 设置图表起点的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41645831/

相关文章:

javascript - highcharts pie-basic 百分比的错误

javascript - 定期更新 Highcharts 系列数据后浏览器崩溃

javascript - 带输入字段的下拉菜单

javascript - D3.js 复制我的数据

html - 响应式 Bootstrap 不会预编译

ruby-on-rails - Rails 4:嵌套属性和 PG::NotNullViolation 错误

ruby-on-rails - 当邮件程序未被定义时,您如何在邮件程序上调用类方法?

datetime - HighChart 中具有相同 xAxis 数据的几个系列

javascript - 如何隐藏然后恢复到初始状态(= 不总是 "block")?

javascript - 验证失败时停止触发 asp.net btnsave.click 事件