我正在更新插件以允许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以反映这一点。

09-25 17:47
查看更多