我正在使用可以显示或隐藏节点的网络图(我正在使用切换祖先按钮来隐藏提供程序和区域)。
有没有办法强制图形适合其容器?我已经尝试过
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
键向系列提供节点信息。
我看不到如何更新这些节点,但我想我错过了文档中的一些内容。有人能指出我正确的方向吗?
另一种策略可能是对路由器和祖先使用不同的系列,但我不确定是否可以使用不同的系列将它们链接在一起......
我的第一个问题可能很愚蠢,但是......我怎样才能真正重新启动 数据更新后进行模拟?
最简单的方法是使用新数据重新创建图表:
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