2015-05-19 83 views
1
import networkx as nx 
import matplotlib.pyplot as plt 

usernode = input("How many node does your graph have?") 
G = nx.Graph() 
nodenum = [] 
labels = {} 
for node in range(usernode): 
    nodenum.append(node) 
for label in range(usernode): 
    labels[label] = str(label) 
print(labels) 

G.add_nodes_from(nodenum) 
pos = nx.spring_layout(G) 
nx.draw_networkx_labels(G,pos,labels,font_size = 10) 
nx.draw(G) 
plt.axis('off') 
plt.show() 

1.如何將這個節點的標籤正好放在圓圈的中心?我知道這個問題是關於pos的,但是我該怎麼辦? 2.完全可以如何管理networkx中的pos? 感謝網絡x的圖形節點的中心試驗

回答

0
  1. 的問題是,你正在繪製標籤與給定的位置,那麼你繪製圖形不指定任何節點的位置,以便networkx生成自己的位置。所以,你可以做的兩個選項之一來解決這個問題:

一)發送到POS功能nx.draw:nx.draw(G,POS),而不是nx.draw(G)

或更簡單地

b)中除去nx.draw_networkx_labels線和改變nx.draw(G)到nx.draw(G,POS,with_labels =真,FONT_SIZE = 10)

  1. 您有不同的佈局,例如您使用的彈簧佈局,您可以找到它們here。或者,您可以通過按節點創建字典鍵來生成自己的位置。