Highcharts,Rails – 设置图形起点的方法?

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

series: [{ name: 'Difficulty', connectNulls:true, color: '#FF0000', pointInterval: , pointStart: , data: [ current_user.school_user.id).order('updated_at ASC').each do | homework_student| %> [Date.parse(), ], ] }, 

我的图表有效,但忽略了pointStart。 如上所述我试图在我的表中使用updated_at属性。 我知道上面的代码可能不是用Highcharts获取和呈现数据的理想方式,所以欢迎任何建议来清理它。

为了让pointStart工作,我需要做些什么改变?

谢谢

在此处输入图像描述

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

所以,你的数据应该更像:

 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 %> 

也许您还应该添加一个filter来确定您选择的内容。 它不应该超过两周前:

 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 %>