マルチグラフnumpy隣接行列をnetworkxに渡したとき(from_numpy_matrix関数を使用) matplotlibを使用してグラフを描画しようとすると、複数のエッジが無視されます。matplotlibまたはgraphvizを使用してnetworkxでマルチグラフを描画する方法
どのようにして複数の辺を描画することもできますか?
マルチグラフnumpy隣接行列をnetworkxに渡したとき(from_numpy_matrix関数を使用) matplotlibを使用してグラフを描画しようとすると、複数のエッジが無視されます。matplotlibまたはgraphvizを使用してnetworkxでマルチグラフを描画する方法
どのようにして複数の辺を描画することもできますか?
Graphvizは平行エッジを描画するのに適しています。ドットファイルを作成してGraphvizで処理することで、NetworkXでそれを使うことができます(例えば、以下のneatoレイアウト)。あなたがNetworkX 1.11以降でNetworkX
In [1]: import networkx as nx
In [2]: G=nx.MultiGraph()
In [3]: G.add_edge(1,2)
In [4]: G.add_edge(1,2)
In [5]: nx.write_dot(G,'multi.dot')
In [6]: !neato -T png multi.dot > multi.png
に加えて、PYDOTまたはpygraphvizが必要になります、nx.write_dot
はissue on networkx githubどおりに動作しません。この問題を回避するには、
from networkx.drawing.nx_pydot import write_dot
または
from networkx.drawing.nx_agraph import write_dot
networkx、pygraphviz、graphvizのどのバージョンを使用していますか? – eyaler
これは私が持っているものです。しかし、最近のバージョンでも同じ結果が得られるはずです。 $のpython -c "輸入pygraphviz;印刷pygraphviz .__ version__" -V ドット 1.2.dev1990 は$ドット - graphvizのバージョン2.29.20120625.0446(20120625.0446) $のpython -c「輸入networkx;印刷networkx .__ version__ " 1.8.dev_20130108070258 – Aric
グラフの画像を生成するためにneatoを使用していますが、有向グラフ(無向ではありません)とエッジ(1,2)のみを表示し、エッジ(2、 1)。どうして無向でないのですか?そして、なぜもう片方の端が見えないのですか?どうかしてください! –
http://stackoverflow.com/questions/10379448/plotting-directed-graphs-in-python-in-を使用して
write_dot
を呼び出すことですa-way-that-show-all-edges-separateとhttp://stackoverflow.com/questions/15053686/networkx-overlapping-edges-when-visualizing-multigraph –これはnetworkxに実装されていないこともあります。 – famargar