HighCharts:如何在DateTime范围之间显示xAxis?

时间:2015-04-09 07:48:49

标签: ruby-on-rails ruby datetime highcharts

我正在使用带有' 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。它虽然使用了日期。

0 个答案:

没有答案