gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:14:58 27 4
gpt4 key购买 nike

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

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com