2017-11-27 21 views
-1

属性 'name'、 'latitude'、および 'longitude'を持つノードを描画しようとしています。私は下のコードで描画しようとしましたが、毎回異なるグラフを返します。どのようにノードの位置を修正するには?以下ノードをネットワークPythonの座標で固定位置に描画します

G = nx.Graph() 

G.add_nodes_from(pos.keys()) 
for n, p in pos.items(): 
    G.node[n]['pos'] = p 

pos=nx.spring_layout(G) 
pos=nx.get_node_attributes(G,'pos') 
pos=nx.spring_layout(G) 

nx.draw(G, pos, with_labels=True, font_size=8, node_size=5) 
plt.show() 
{'Baker Street': [51.522236, -0.15708], 'Bermondsey': [51.498129999999996, -0.0635], 'Blackhorse Road': [51.58698, -0.04104]} 
+0

春のレイアウトは、ランダムな位置にノードを置きます。だから、春のレイアウトを呼び出すたびに異なるものが生成されます。 'pos = nx.spring_layout(G)'を使うときは、 'pos = nx.get_node_attributes(G、 'pos')'を使うだけです。コメントありがとうございます。 – Joel

答えて

1

springレイアウトを使用していますが、目標位置と同じではありません。そういうわけで、あなたは別のレイアウトを得ています。属性positionにノードの位置を固定するためにだけ実行します。NXとして

輸入networkx

G = nx.Graph() 

G.add_nodes_from(pos.keys()) 
for n, p in pos.items(): 
    G.node[n]['pos'] = p 


nx.draw(G, pos=pos, with_labels=True, font_size=8, node_size=5) 
plt.show() 
+0

コメントありがとうございます!はい、私は春のレイアウトに関する十分な情報がありませんでした。 –

0

ラインにPOSの例である最初は、その後キーとしてG.nodes()を使用して辞書を作成して、Gにすべてのノードを追加します。 pos_list座標を含むタプルのリストである

+0

同じランダムグラフを返します。 –

関連する問題