我想垂直增加节点之间的空间,为此我发现d3从v3开始具有nodeSize(),我在堆栈和混淆中发现了类似的问题,并且一切正常。但是在我的情况下,此nodeSize()无法正常工作。

我创建了一个包含我的代码的js小提琴,但是d3图形与我在dev server bec中包含的Angular和js调用并不完全相同,但是我认为这不会影响此大小问题。这样您可以了解我的工作以及nodeSize()为何不起作用

http://jsfiddle.net/9428byn7/

编辑:

我只是发现在他们的示例http://bl.ocks.org/robschmuecker/7880033中,nodeSize也不起作用

也许是因为他们正在使用viewHieght和viewWidth,任何解决方案?

最佳答案

确定,如果您阅读文档:
https://github.com/mbostock/d3/wiki/Tree-Layout#size
其状态在文档中明确指出:
size属性与tree.nodeSize互斥;设置tree.size将tree.nodeSize设置为null。

因此,在小提琴(http://jsfiddle.net/9428byn7/)的更新功能中,检查第473行:
你写:

tree = tree.size([newHeight, viewerWidth]);


根据文档以及我们所看到的,这将使您的tree.nodeSize无效。
因此,与其做上面的一行,不如做:

tree.nodeSize([200,600]);


工作代码here

希望这可以澄清您的担忧!

09-27 22:02