我正在使用networkx繪製網絡中節點位於字段上給定位置的圖形。該字段被分成設定數量的單元格,節點位置對應於一個單元格。繪製圖形時,我想在背景中顯示網格,以便圖形中的單元格和距離可見。 networkx提供了一個選項嗎?我找不到一個。我試圖通過pyplot設置網格:使用networkx繪製圖形時顯示背景網格(也稱單元格)
plt.xlim(0,14)
plt.ylim(0,10)
plt.xticks([x for x in xrange(0,14)])
plt.yticks([x for x in xrange(0,10)])
plt.grid(True)
其作品本身(見here),但是當還呼籲
它顯示的圖形沒有網格(見here)。我猜測網格仍然在後臺,但是networkx完全覆蓋了它。
那麼有沒有什麼方法可以顯示與plt網格或可能networkx命令,我沒有找到它允許類似的東西?
編輯:這是使用的完整代碼。看到其中的差別時(UN)評論nx.draw(G,pos)
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
def quit_figure(event):
if event.key == 'q':
plt.close(event.canvas.figure)
nodes = [[1,1],[3,1],[6,1],[3,2],[13,1],[3,5]]
distance_array = [
[[],[],[1,3],[],[5],[],[],[],[],[],[],[],[],[],[]],
[[],[3],[0],[2],[],[],[],[],[],[],[],[],[],[],[]],
[[],[],[],[1,3],[5],[],[],[4],[],[],[],[],[],[]],
[[],[1],[0],[2,5],[],[],[],[],[],[],[10],[],[],[],[]],
[[],[],[],[],[],[],[],[2],[],[],[3,5],[],[],[],[]],
[[],[],[],[3],[0,2],[],[],[],[],[],[4],[],[],[],[],[]],
[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],
[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],
[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]]
current_transmission_range = 0
transmission_range = np.zeros((len(nodes)), dtype=int)
pos = {x:[nodes[x][0],nodes[x][1]] for x in xrange(len(nodes))}
graph_nodes = [x for x in xrange(len(nodes))]
current_transmission_range = 0
cid = plt.gcf().canvas.mpl_connect('key_press_event', quit_figure)
plt.xlim(0,14)
plt.ylim(0,10)
plt.xticks([x+0.5 for x in xrange(0,14)], [' '+str(x) for x in xrange(0,13)])
plt.yticks([x+0.5 for x in xrange(0,10)], ['\n\n'+str(x)+'\n\n\n\n' for x in xrange(0,9)])
plt.grid(True)
G = nx.Graph()
for node in graph_nodes:
G.add_node(node)
for node in graph_nodes:
for j in xrange(transmission_range[node]+1):
for k in distance_array[node][j]:
if(j <= current_transmission_range):
G.add_edge(node, k,weight=j)
edge_weight=dict([((u,v,),int(d['weight'])) for u,v,d in G.edges(data=True)])
nx.draw_networkx_edge_labels(G, pos,edge_labels=edge_weight)
# draw graph
# nx.draw(G, pos)
plt.show()
之後你有沒有試過['hold'參數(HTTP://networkx.lanl .GOV /參考/生成/ networkx.drawing.nx_pylab.draw.html#networkx.drawing.nx_pylab.draw)? – goncalopp 2014-09-23 13:20:05
剛試過,沒有改變任何東西。但我只是看到了一個「斧頭」的論點,這應該可能有幫助。只需要弄清楚 – Simon 2014-09-23 13:28:36