2017-06-28 11 views
0

私は2つの異なるタイプのノード(ノード 'a'とノード 'b'と呼ぶ)を持つXMLファイルを持っています。彼らは接続されています。私は、ノードaを正方形とし、ノードbを円として表現したいと思います。これはnetworkxとPythonで可能ですか?networkxグラフに異なる形のノードを混在させることはできますか?

私の当初の計画は、二つのグラフを宣言しました。そして、それはノードの種類に応じて、これらのそれぞれにノードを追加

AG=nx.DiGraph() 
BG=nx.DiGraph() 

を - ので、私はXMLを通って、ノードが "だった場合繰り返すだろうタイプA」、その後AGに追加、それがタイプBである場合に追加BG

今は、各グラフを表示し、その定義することができの形状を - 典型的には:

nx.draw_networkx(EG, font_family="Arial", font_size=10, 
       node_size=2000, node_shape="s", node_color='r', labels=node_labels, with_labels=True) 
0を

「a」ノードと「b」ノードの間にエッジを追加しようとするときです。

どうすればよいでしょうか?

答えて

0

は、1つのグラフにデータセット全体を保管してください:

G = nx.DiGraph() 

またA_nodes、およびB_nodesのリストを保持します。すべてのノードがGであるので、次にあなたが

AG = G.subgraph(A_nodes) 
BG = G.subgraph(B_nodes) 

を使用してGの部分グラフを選択することができ、あなたは今、ノードおよびB-ノード間のエッジを追加することができます。

G.add_edge(a_node, b_node) 
+0

ワンダフル!マジック、ありがとう。 –