【问题标题】:Updating Highstock chart points更新 Highstock 图表点
【发布时间】:2017-04-20 19:26:47
【问题描述】:

我需要更新图表中最近的蜡烛。通常,我会使用它来更新一个点:

//javascript
chart.series[0].data[n].update({...});

但是,当我显示整个数据集时,我的 series.data 数组为空,可能是因为:

HighStock 官方文档:数据

只读。包含系列数据点对象的数组。如果系列数据长度超过cropThreshold,或者如果数据被分组,则 series.data 不包含所有点。它仅包含按需创建的点。在这些情况下,所有原始 X 和 Y 值都可以从 series.xData 和 series.yData 中读取。此外,series.options.data 包含点的所有配置对象,无论是数字、数组还是对象。

返回数组

当 Point.update 方法的接口只能通过 series.data 集合访问时,如何更新我最近的蜡烛点?当我的 series.data 数组为空时,我是否只需通过 series.options.data 覆盖点属性?

我也考虑过调用 series.update(options) 方法,但由于实时活动,我可能需要多次执行蜡烛更新。因此,由于开销,更新整个系列对象不是一个好的决定。

【问题讨论】:

    标签: highcharts highstock


    【解决方案1】:

    数据数组为空,因为 Highstock 进行数据分组 - 启用后,它使用 groupedData 数组。不幸的是,您无法更新分组点(Highcharts 抛出 error)。

    你可以做的是禁用数据分组,然后你会得到一个数据数组和point.update是可能的或使用Series.removePointSeries.addPoint()

     chart.series[0].removePoint([chart.series[0].groupedData.length - 1]);
          chart.series[0].addPoint([
            Date.UTC(2016, 11, 8),
            115,
            2,
            30,
            20
          ]);
    

    例如:http://jsfiddle.net/0z95x58t/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      相关资源
      最近更新 更多