【问题标题】:how to update Large tree map without redrawing chart?如何在不重绘图表的情况下更新大树图?
【发布时间】:2015-10-27 17:40:14
【问题描述】:

我有一个highchart 2 级树形图,用于显示股票市场的价格,每个部分的价值几乎每秒钟都在变化,我想更新每个部分的值,但正如我在高图中看到的,我们可以更新通过更改数据和重绘图表来绘制图表,这导致图表回到第一级。 如何在不重绘图表的情况下更新第二级各部分的值?

这是一个 jsfiddle 链接,当单击第一级区域时转到第二级,然后单击按钮更新并返回到第一级但我想在第二级更新 http://jsfiddle.net/1e6yay4t/

【问题讨论】:

  • 总是当你想“更新”点时,你需要渲染图表的一部分。它与所需的销毁 SVG 元素并创建新元素有关。请在 jsfiddle.net 上隔离您的示例,然后我们验证是否可以进行任何优化。

标签: highcharts


【解决方案1】:

JSFiddle 会更好,因为我们可以准确地看到您的问题。如果您不想在每次更新后看到重新绘制的图表,Highcharts 的 update() 方法作为布尔参数特别存在。见this documentation

您可能需要使用:

chart.series[0].update({...}, false);

【讨论】:

  • 在这种情况下,元素不会更新,因此您不会观察到图表的变化。
  • @SebastianBochan 没有小提琴就很难理解 OP 想要什么。你不认为他应该使用向下钻取模块而不是手动定义他的树图级别吗?
【解决方案2】:

我稍微修改了你的代码,以便我可以看到发生了什么。但是,为了在更新时保持在第 2 级,请更新点而不是整个系列。

$("#update-map").on('click', function () {
    tag[3].value += 30000000;
    var chart = $('#treemap').highcharts();
    chart.series[0].data[3].update(tag[3]);
})

http://jsfiddle.net/1e6yay4t/1/

(这适用于任何点,我只选择了 3,因为该组中的值更接近,所以发生的事情更明显)

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 2012-01-11
    • 2019-08-04
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多