NetworkGraph:适合视图并重绘

问题描述 投票:0回答:1

我正在使用可以显示或隐藏节点的网络图(我正在使用切换祖先按钮来隐藏提供程序和区域)。

有没有办法强制图形适合其容器?我已经尝试过

chart.reflow()
,但没有成功...

每次我切换祖先时,地图都会很好地更新,但是当隐藏时,地图会保持移动,就像祖先仍然显示一样。

第一个屏幕是我的网络的初始状态。 在右下角,你可以看到一些按钮,这就是我正在尝试实现的按钮。

refresh
按钮应该重绘图形,就像第一次渲染一样。

它与以下代码相关:

function redraw() {
    chart.series.at(0).render();
}

右侧的按钮,看起来像一个小图,用于启用祖先。

它与以下代码相关:

dataset = extractSeries(stubedNetwork, enableAncestors);

chart.series.at(0).update({
    data: dataset.data,
    nodes: dataset.nodes,
}, true);

一旦启用祖先,祖先就会很好地显示,但模拟似乎不会重新启动。

我的第一个问题可能很愚蠢,但是...一旦数据更新,我怎样才能真正

restart
进行模拟?

第二个是关于节点的。如果网络图使用数据来计算节点,则应该使用

node
键向系列提供节点信息。

我看不到如何更新这些节点,但我想我错过了文档中的一些内容。有人能指出我正确的方向吗?

另一种策略可能是对路由器和祖先使用不同的系列,但我不确定是否可以使用不同的系列将它们链接在一起......

highcharts
1个回答
0
投票

我的第一个问题可能很愚蠢,但是......我怎样才能真正重新启动 数据更新后进行模拟?

最简单的方法是使用新数据重新创建图表:

  chart = Highcharts.chart('container', {
    ...chartOptions,
    series: [{
      ...,
      data: [...]
    }]
  });

我看不到如何更新这些节点,但我想我错过了一些东西 文档。有人能指出我正确的方向吗?

您可以通过以下方式更新特定节点:

  chart.series[0].nodes[0].update({
    marker: {
        radius: 10
    }
  });

现场演示:https://jsfiddle.net/BlackLabel/q6teyn1o/

API 参考: https://api.highcharts.com/class-reference/Highcharts.Point#update

© www.soinside.com 2019 - 2024. All rights reserved.