Ber*_*ern 3 javascript linechart highcharts leap-year highstock
这个问题最好用以下小提琴来描述: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()
}],
Run Code Online (Sandbox Code Playgroud)
我想比较每年的timseries,它们由于闰年(2016年2月29日)而具有不同的数值.
要求: 即使存在闰年,也要在彼此之下显示相等的日期.
在示例中,您可以看到2月29日下方显示3月1日.对于非闰年时间序列,应该存在差距.即使我在3月1日添加空值,我也无法停止房间时间的连续性.
有人能帮助我吗?
我会这样接近它:
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],
}]
});
Run Code Online (Sandbox Code Playgroud)
小提琴: