【问题标题】:D3 V5 Tree link source position is incorrectD3 V5 树链接源位置不正确
【发布时间】:2019-04-15 12:32:03
【问题描述】:

我一直在制作树层次图,有两个过滤器,一个显示完整的层次结构,一个只显示树中集合节点的沿袭。

切换到沿袭视图时,链接的源节点位置似乎不正确,并保持其旧位置。

在下面的这张照片中,我们展示了完整的层次结构。

在下面的这张照片中,我们只显示了一位用户的血统。

如您所见,链接的源位置非常偏离。

我通过减少每个节点的子数组对象中的元素,将图形简化为沿袭视图。

问题示例:https://blockbuilder.org/frazboyz/dc5a4f77e9c61acc996f2efc5d00d3cd

【问题讨论】:

  • 您能提供一些示例数据吗?这就是您的全部代码吗?当您尝试创建沿袭视图时,感觉您的数据需要使用d3.heirarchy() 再次更新。你能在 blockbuilder.org 上创建一个区块吗?
  • 因此,当我将层次视图修剪为沿袭视图时,基本上所有发生的事情就是我删除了除到达目标所需的子对象之外的所有子对象,然后从根对象进行更新.
  • 问题在于,如果您 console.log 您的数据,它仍然具有源的旧 x、y 值。这就是为什么如果您使用一些示例数据创建一个块,我可以为您提供更好的帮助。
  • 我认为这不应该要求我再次调用 hierarchy() 对吧?
  • 没问题,给我 20 分钟。

标签: javascript d3.js hierarchy


【解决方案1】:

该错误是由于我克隆了对象并将其分配为 Node 中的子对象而导致的,这会更改其对象。

原创 https://blockbuilder.org/frazboyz/dc5a4f77e9c61acc996f2efc5d00d3cd

固定 https://blockbuilder.org/frazboyz/9d0c834e5c99e1da9481ea6c922cf9ca

参见第 216 行。

【讨论】:

  • 太棒了。我删除了我的答案,因为您的解决方案更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
  • 2017-06-27
相关资源
最近更新 更多