在某些缩放级别不显示数据的图表

Highcharts not displaying data at some zoom levels

本文关键字:数据 显示 缩放      更新时间:2023-09-26

我正在使用Highcharts/Highstock来绘制相当大量的数据(~10,000点)。数据由 X 轴上的 Date 对象和 Y 轴上的浮点数组成,格式如下:[[(date), 1.728], [(date), 0.346], ...] .日期始终相隔 1 小时,数据中没有间隙。

当图表的范围为>= 21 天(这样至少绘制了 21 天的数据)时,图表将正确显示。但是,只要范围小于该值,图表就会变为空白,并且工具提示将每个点显示为 Y 值为 0.0。这些点的 Y 值确实存在于数组中(我可以在 Firebug 中看到它们),但它们不会显示在图表上。以下是我初始化它的方式:

mainChart = new Highcharts.StockChart({
  chart: {
    renderTo: 'linegraph'
  },
  rangeSelector: {
    buttons: [{
      type: 'day',
      count: 1,
      text: '1 d'
    }, {
      type: 'week',
      count: 1,
      text: '1 wk'
    }, {
      type: 'month',
      count: 1,
      text: '1 mo'
    }, {
      type: 'year',
      count: 1,
      text: '1 yr'
    }, {
      type: 'all',
      text: 'All'
    }],
    selected: 2
  },
  series: [{
    name: 'Electricity usage (kWh)',
    data: graphData,
    tooltip: {
      valueDecimals: 2,
      valueSuffix: "kWh"
    }
  }],
});

我遇到了同样的问题,但是在 X 轴上的时间戳上一切都很正常。

通过按升序对数据进行排序来解决它(首先以相反的顺序提供)。

事实证明,您不能在数据的 X 轴中使用日期。相反,请使用日期的 Unix 时间戳:Date.getTime() 。FloppyDisk的主要道具为我指明了正确的方向。