【问题标题】:How to Remove Previously Drawn InfoVis Space Tree如何删除以前绘制的 InfoVis 空间树
【发布时间】:2014-12-03 22:52:36
【问题描述】:

我正在使用 InfoVis 在我的一个项目中生成空间树可视化。由于这是一个交互式网站,因此每次用户更改偏好时都需要重新生成空间树。
这需要将空间树彻底清除,并在同一空间重新绘制一棵新树。此外,图表区域可以随着页面大小的变化而调整大小。这需要重新绘制空间树。

我在绘制新的空间树之前尝试清除之前绘制的空间树时遇到了几个问题。我正在使用以下代码段来清除之前的绘图,但它失败得很惨。

st.clearNodesInPath();
st.labels.clearLabels(true);
st.canvas.clear();

如果有人能指导我如何解决这个问题,那就太好了,因为这阻碍了我的进步。提前致谢。

【问题讨论】:

  • 正如您在随附的屏幕截图中看到的那样,之前的实例并未清除。他们继续留在屏幕上。

标签: javascript angularjs infovis thejit space-tree


【解决方案1】:

这是通过以下方式解决的。

InfoVis 图表将其元素绘制为父元素内的 HTML div 元素。问题是由于那些生成的 div 元素即使在清除数据结构之后仍然存在。这些在之前附加的图像中都清楚地显示了。

这是通过以下方式解决的。

var list = document.getElementById("idOfParentElement");
list.removeChild(list.childNodes[0]);

代码片段提取父 InfoVis 元素并清除它生成的所有子元素。这最终将清除将在其中绘制可视化的画布对象。

这解决了我的问题。希望这对遇到同样问题的人有所帮助。

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2019-07-30
    • 2014-09-30
    • 2011-03-04
    • 2022-01-22
    • 1970-01-01
    • 2022-10-01
    • 2021-01-15
    相关资源
    最近更新 更多