2017-04-14 3 views
0

networkxを使用すると、指向性エッジと双方向エッジを持つマルチグラフを作成する方法はありますか?ハイブリッド指向マルチグラフネットワーク

私はグラフの中で違うものを意味するので、双方向のエッジの代わりに2つの指向のエッジを使うことはできません。 networkx.MultiDiGraph()は方向性エッジのみを示し、networkx.MultiGraph()は双方向性エッジのみを示します。

+1

この時点では、ネットワークのグラフには、方向と非方向のエッジを混在させることはできません。問題のデータと使用するアルゴリズムに応じて、エッジラベルを使用して問題を解決し、エッジタイプを区別する方法があります。 – Aric

+0

さて、確認していただきありがとうございます。私は 'networkx.has_path(Graph、node1、node2)'を使用したいだけです。 – pwnsauce

+0

そして、それはUndirectedマルチグラフを持つことが可能であり、それからディレクテッドサブグラフを作ることができますか? – pwnsauce

答えて

2

私は、ノードとラベルを描画し、グラフからエッジを2回、diGraphからエッジを無向きに上書きするか、2つのセットに分割することをお勧めします。

nx.draw_networkx_nodes(G) 
nx.draw_networkx_labels(G) 
nx.draw_networkx_edges(G) #directed 
nx.draw_networkx_edges(H) #undirected 

これでうまくいかない場合は、edgewidthで再生して、指示したものを隠蔽し、見たいものを拡大表示することができます。

関連する問題