【发布时间】:2018-02-12 08:24:55
【问题描述】:
我正在尝试绘制问题“Collatz 猜想”的数字,它在数字(节点标签)之间形成了一个很好的网络。但是,在使用 networkx nx.spring_layout(G) 的解决方案的最终图中,我得到重叠的边缘和节点:
nx.spring_layout 配置(通过反复试验)为:
pos=nx.spring_layout(G,k = 0.004, iterations = 500, scale = 0.6)
nx.draw(G, labels=labels, pos=pos, font_size = 6, alpha = 0.5, node_size = nodes.values())
plt.show()
鉴于绘图窗口中有足够的空白空间,是否有特殊方法可以防止这种重叠?在这种情况下,节点大小由以下值决定:len(G.neighbors(node))
没有节点有超过 3 个邻居,并且最大节点大小上限为 300,以进一步防止重叠。
奇怪的是,对于较长的分支,这似乎处理得相当好,但是对于图像中的 [24,12,6,3,10] 之类的分支,它无法充分划分这个分支,在其他情况下它完全重叠。请告知我是否应该使用除 nx.spring_layout(G) 之外的其他布局,这可能会更好地处理这个问题。
【问题讨论】:
-
graphviz_layout通常做得最好。 (from networkx.drawing.nx_agraph import graphviz_layout.)
标签: python matplotlib plot networkx