D3可折叠树,更改结的颜色并避免行/文本重叠

昆汀·尼奇

因此,这里是d3树:

http://plnkr.co/edit/HwcZecZtLor51cyNSGSL?p=preview

您可能会看到,树有些复杂,某些休假名称可能会很长。我的主要问题是:

我们可以更改特定结的颜色(一些蓝色,一些红色)吗?有什么办法可以使请假文本与上一级的链接不重叠?尤其是当链接为直线时,会发生这种情况。

我的JS技能至少可以这么说,因为这是我踏入这个世界的第一步,任何帮助将不胜感激。

谢谢!

拉尔斯·科特霍夫(Lars Kotthoff)

您第一个问题的答案很简单。在您的示例的第90行中设置了节点的颜色-

.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });

要更改颜色,您需要做的就是调整这条线。在返回颜色的函数中,您可以访问绑定到节点的数据,因此可以使用任何数据属性来确定颜色。请注意,此处仅设置填充颜色,而不设置轮廓描边颜色,但是您可以轻松添加.style("stroke", ...)

第二个问题的答案要复杂得多。您要的功能不是D3的内置功能,因此您必须自己做。请注意,这将是一件非常复杂的事情,因为您必须动态地找出链接和文本元素的位置和边界框。以一般方式进行此操作将是一个重大项目。

我建议您尝试使用标签放置,以尽可能避免重叠。这样会容易得多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章