数値(ノードラベル)間に素敵なネットワークを形成する問題「Collatz Conjecture」の数をプロットしようとしています。しかし、networkx nx.spring_layout(G)
を用いて溶液の最終的なプロットでIは重複エッジノードを取得: NetwrokX/Matplotlibでエッジとノードのオーバーラップを防ぐ
として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'は通常、最も良い仕事をしています。 ( 'networkx.drawing.nx_agraph import graphviz_layout'から) – DyZ