X轴显示从12到12:55的时间而不是日期

时间:2015-04-19 05:22:51

标签: javascript charts highcharts

此代码生成一个2 Y轴和1 X的高图:

$('#main_chart').highcharts({
      chart: {
          zoomType: 'xy'
      },
      title: {
          text: 'Overview'
      },
      xAxis: [{
          type: 'datetime'
      }],
      yAxis: [{ // Primary yAxis
          labels: {
              format: '${value}',
              style: {
                  color: Highcharts.getOptions().colors[1]
              }
          },
          title: {
              text: 'Y1',
              style: {
                  color: Highcharts.getOptions().colors[1]
              }
          }
      }, { // Secondary yAxis
          title: {
              text: 'Y2',
              style: {
                  color: Highcharts.getOptions().colors[0]
              }
          },
          labels: {
              style: {
                  color: Highcharts.getOptions().colors[0]
              }
          },
          opposite: true
      }],
      tooltip: {
          shared: true
      },
      legend: {
          layout: 'vertical',
          align: 'left',
          x: 120,
          verticalAlign: 'top',
          y: 100,
          floating: true,
          backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
      },
      scrollbar: {
        enabled: true
      },
      series: [{
          name: 'Y1',
          data: y1Data
      }
      ,{
          name: 'Y2',
          data: y2Data
      }
      ]        
  });

y1Data和y2Data是数组[[1426525200, 2], [1426611600, 0], [1426698000, 0]...]的数组,其中第一个元素是日期。日期是连续1天的步骤:

1 Mar 2015, 2 Mar 2015, 3 Mar 2015....

但是,我在X上只看到了从12:00到12:55的时间,没有别的:

enter image description here

我想看的是日期1 Mar 2015, 2 Mar 2015, 3 Mar 2015.... EndDate。此外,为什么减去20美元?数据集中没有负值。

1 个答案:

答案 0 :(得分:1)

定义数据时,要么以毫秒(而不是秒)提供时间戳,要么改为使用JavaScript Date对象:

var y1Data = [[new Date(), 2], [1426611600000, 0], [Date.UTC(2010, 2, 1), 0]];

要回答您的$-20问题,Highcharts会使用自己的算法猜测最合适的轴最小值。如果您对此不满意,只需设置

即可
yAxis: {
   min: 0,
   ...
}