我正在更新插件以允许Highcharts充当甘特图。除了将xaxis的极端值设置为新的开始/结束位置,并且在某些情况下,图表缺少该范围内的数据外,所有其他方法都运行良好。
有时候,图表只会遗漏一个月月份范围内的数据,但是当您更改为两个月时,数据将神奇地显示为与两个月重叠。在以下示例中,我当前将其设置为显示2016年5月1日至2016年12月30日之间的所有数据。当您将开始月份更改为6/1/2016时,所有数据点都将丢失。
Example
我相信经过更多测试后,它会围绕当前日期展开。但是,初始化HighCharts时没有任何约束:
// THE CHART
$('#container').highcharts({
chart: {
type: 'xrange'
},
title: {
text: 'Highcharts X-range study'
},
xAxis: {
type: 'datetime'
},
yAxis: {
title: '',
categories: ['1', '2', '3', '4', '5', '6', ,'7', '8']
},
series: [{
name: 'Project 1',
// pointPadding: 0,
// groupPadding: 0,
borderRadius: 5,
pointWidth: 10,
/*more data in jsfiddle*/
data: [{"label":"1","x":1462147200000,"x2":1464739200000,"y":1,"color":"#999"},{"label":"1","x":1464825600000,"x2":1467331200000,"y":1,"color":"#999"},{"label":"1","x":1467417600000,"x2":1470009600000,"y":1,"color":"#999"} ]
}]
});
起初,我认为这将是一个限制约束,但是我可以显示所有数据而没有任何问题(从日期输入中删除默认值)。有什么想法吗?如果您需要其他信息,请告诉我。
提前致谢!
更新
经过进一步测试后,无论是否对数据进行排序,使用设置极端值时似乎仍然缺少数据,而事实并非如此。我目前在以下情况下看到数据丢失:
当开始日期在间隔开始/结束日期之间时,间隔将不会显示。
我将尝试挖掘HighCharts源代码以了解发生了什么,但是上面的示例仍然反映了此问题。
最佳答案
原来,我必须在初始化图表之前对数据进行排序。
用以下代码做到了:
data.sort(function(a, b) {
a = a.x2;
b = b.x2;
return a < b ? -1 : a > b ? 1 : 0;
});
然后将数据传递到图表诱骗程序的data属性中。更新了jsfiddle以反映这一点。