我的点是x,y,我想用点列表中的(x,y)坐标来绘制我的图,这样我就可以看到轴了。
import networkx as nx
import matplotlib.pyplot as plt
def add_edge_to_graph(G,e1,e2,w):
G.add_edge(e1,e2,weight=w)
G=nx.Graph()
points=[(1, 10), (8, 10), (10, 8), (7, 4), (3, 1)] #(x,y) points
edges=[(0, 1, 10), (1, 2, 5), (2, 3, 25), (0, 3, 3), (3, 4, 8)]#(v1,v2, weight)
for i in range(len(edges)):
add_edge_to_graph(G,points[edges[i][0]],points[edges[i][1]],edges[i][2])
pos = nx.spring_layout(G)
nx.draw(G,pos=pos,node_color='k')
nx.draw(G, pos=pos, node_size=1500) # draw nodes and edges
nx.draw_networkx_labels(G, pos=pos) # draw node labels/names
# draw edge weights
labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)
plt.axis()
plt.show()
3条答案
按热度按时间xurqigkl1#
这可以解决你的问题:
结果
后台
对于轴,我使用了上面建议的
plt.axis("on")
和How to make x and y axes appear when using networkx and matplotlib?另外,我用
points
列表中的位置替换了spring_layout
。igetnqfo2#
我会尝试使用以下命令打开轴:
这样你就可以使用draw with axis了。
ngynwnxp3#
这并不使用networkx,但如果你想快速可视化点并查看边缘,这是非常方便的。
示例代码:
输出示例: