我正在使用带有' datetime'的折线图。 x轴。我有pointStart: 'April 08, 2015 07:00 PM'
和tickAmount: 12
12小时显示。该图表显示了xAxis上的4月8日,但显示的是上午12点到下午12点,而不是早上7点到晚上7点。
这是我的配置:
x_axis_start_time = 'April 08, 2015 07:00 PM -700'.to_datetime
@pv_chart = LazyHighCharts::HighChart.new('graph') do |f|
f.chart({:zoomType =>'x'})
f.options[{
useUTC: false,
scrollbar: { enabled: true }
}]
f.title({ :text=>"PV Module Temperature"})
f.xAxis [
{
type: 'datetime',
pointStart: x_axis_start_time,
pointInterval: 1 * 3600 * 1000,
tickAmount: 12,
tickInterval: 1 * 3600 * 1000,
}
]
f.yAxis [
{
title: {text: "Temperature ( °C )",
margin: 30},
}
]
f.legend(:align => 'center', :verticalAlign => 'bottom', :layout => 'horizontal')
f.series( :name=> 'PV1', :data=> @avg_pv1, color: '#FF6138', \
pointStart: x_axis_start_time, pointInterval: 60 )
f.series( :name=> 'PV2', :data=> @avg_pv2, color: '#00A388', \
pointStart: x_axis_start_time, pointInterval: 60 )
end
结果:http://i.stack.imgur.com/DinTq.png
我在另一个SO线程上读到了传递UNIX纪元或毫秒的工作,但是当我将DateTime对象转换为int和* 1000时,图表不会显示。如何从特定时间开始xAxis标签?
修改:
start_time = '2015-04-02 07:00:00 -0700'.to_time
end_time = '2015-04-02 19:00:00 -0700'.to_time
f.xAxis [{
type: 'datetime',
pointStart: start_time,
}]
f.series( :name=> 'PV1', :data=> @avg_pv1, color: '#FF6138', \
pointInterval: min_inter * 60, pointStart: start_time, \
tickInterval: 1 * 3600, tickAmount: 12, \
min: start_time, max: end_time)
此配置按我希望点显示的方式工作,但xAxis不使用pointStart:start_time。它虽然使用了日期。