【问题标题】:Highcharts - Missing Data after setExtremesHighcharts - setExtremes 后缺少数据
【发布时间】:2016-05-16 16:41:10
【问题描述】:

我正在更新插件以允许 Highcharts 充当甘特图。除了我将 xaxis 的极值设置为新的开始/结束,并且在某些情况下,图表缺少该范围内的数据时,一切都运行良好。

有时,图表会丢失仅一个月范围内的数据,但当您更改为两个月时,数据会神奇地出现与两个月重叠的数据。在以下示例中,我将其当前设置为显示 2016 年 5 月 1 日至 2016 年 12 月 30 日之间的所有数据。当您将开始月份更改为 2016 年 6 月 1 日时,所有数据点都丢失了。

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"} ]
       }]
    });

起初我认为这将是一个限制约束,但我能够毫无问题地显示所有数据(从日期输入中删除默认值)。有什么想法吗?如果您需要更多信息,请告诉我。

提前致谢!

更新

经过进一步测试,无论数据是否排序,使用设置极端时似乎仍然缺少数据,只是没有那么极端。我目前在以下实例中看到缺失数据:

  1. 如果开始日期介于间隔开始/结束日期之间,则不会显示间隔。

我将尝试深入研究 HighCharts 源代码以查看发生了什么,但我上面的示例仍然反映了这个问题。

【问题讨论】:

    标签: javascript highcharts


    【解决方案1】:

    原来我必须在初始化图表之前对数据进行排序。

    使用以下代码做到这一点:

    data.sort(function(a, b) {
      a = a.x2;
      b = b.x2;
      return a < b ? -1 : a > b ? 1 : 0;
    });
    

    然后将数据传递到图表诱饵器的数据属性中。更新了 jsfiddle 以反映这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多