3

该问题最好在以下小提琴中进行描述: https ://jsfiddle.net/bernhard_kern/85s2fm5a/3/ 。我们使用两个系列和两个 xAxis。

xAxis: [{
        type: 'datetime',
        min: new Date('2016/02/22').getTime(),
        max: new Date('2016/03/05').getTime()

    }, {
        type: 'datetime',
        min: new Date('2015/02/22').getTime(),
        max: new Date('2015/03/06').getTime()
    }],

我想比较由于闰年(2016 年,2 月 29 日)而具有不同数量的值的年度时间序列。

要求: 即使有闰年,也要在下方显示相同的日期。

在示例中,您可以看到Mar 1 显示在 Feb 29 下方。对于非闰年时间序列,应该有一个差距。即使我在 3 月 1 日添加了一个 null 值,我也无法停止 room time continuum

有人可以帮助我吗?

4

1 回答 1

5

我会这样处理:

1)使用单个x轴,pointStart使用当前年份(或者,无论哪一年是闰年,以确保您可以考虑闰日。这里使用的年份甚至都没有关系,只要因为它是闰年。您可以使用 1976 年而不影响最终结果

2) 在闰日当天,在没有闰日的数据系列中,插入一个空值

3)使用系列名称来表示有问题的年份,并在工具提示(和/或您需要显示日期的其他任何地方)中,格式化日期以返回不带年份的日期。

代码示例:

  $('#container').highcharts({
    chart: {
      renderTo: 'container'
    },
    plotOptions: {
      series: {
        pointStart: Date.UTC(2016, 1, 22),
        pointInterval: 24 * 3600 * 1000 // one day
      }
    },
    tooltip: {
      shared: true,
      crosshairs: true,
      dateTimeLabelFormats : {
        day:"%b %e"
      }
    },
    xAxis: {
      type: 'datetime'
    },
    series: [{
      name: '2015',
      data: [176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, null, 71.5, 106.4, 129.2, 144.0],
    },{
      name:'2016',
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
    }]
  });

小提琴:

于 2016-03-02T17:07:13.187 回答