[英]Draw Two Graph in Different Positions in NetworkX
我想使用Networkx在不同位置繪制兩個不同的圖形,例如,畫布左側的G1和右側的G2,但是我不知道該怎么做,這是我的代碼:
import networkx as nx
import matplotlib.pyplot as plt
import socialModels as sm
G1 = sm.nearestNeighbor_mod(256, 0.6, 1)
G2 = sm.nearestNeighbor_mod(256, 0.6, 1)
elarge1 =[(u,v) for (u,v,d) in G1.edges(data=True)]
elarge2 =[(u,v) for (u,v,d) in G2.edges(data=True)]
pos1=nx.spring_layout(G1)
pos2=nx.spring_layout(G2)
nx.draw_networkx_nodes(G1,pos1,node_size=30,node_color='b')
nx.draw_networkx_edges(G1,pos1,edgelist=elarge1,width=1,style='solid')
nx.draw_networkx_nodes(G2,pos2,node_size=50)
nx.draw_networkx_edges(G2,pos2,edgelist=elarge2,width=1)
nx.write_graphml(G1,'test.graphml')
plt.show() # display
plt.draw();
如何將pos2中的位置移動到所需值?
一個可行的例子是
import networkx as nx
import matplotlib.pyplot as plt
G1 = nx.balanced_tree(2,1)
G2 = nx.balanced_tree(2,2)
elarge1 =[(u,v) for (u,v,d) in G1.edges(data=True)]
elarge2 =[(u,v) for (u,v,d) in G2.edges(data=True)]
pos1=nx.spring_layout(G1)
pos2=nx.spring_layout(G2)
for k,v in pos2.items():
# Shift the x values of every node by 10 to the right
v[0] = v[0] +10
nx.draw_networkx_nodes(G1,pos1,node_size=30,node_color='b')
nx.draw_networkx_edges(G1,pos1,edgelist=elarge1,width=1,style='solid')
nx.draw_networkx_nodes(G2,pos2,node_size=50)
nx.draw_networkx_edges(G2,pos2,edgelist=elarge2,width=1)
plt.show() # display
plt.draw()
您可以通過評估圖一或二中的位置並計算所需的偏移量來考慮偏移的良好價值...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.