图的类型
无向图小案例
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph([(0, 1), (1, 2), (2, 3), (1, 3)]) # 构建有向图
G.add_edge('A', 'B', weight=3, color='red')
# 下面的代码为开始
pos = nx.spring_layout(G, k=4) # k:Optimal distance between nodes.
nx.draw(G, pos, with_labels=True)
plt.show()
G.clear() # 清除图的内容
效果图:
有向图的小案例
import networkx as nx
import matplotlib.pyplot as plt
FG = nx.Graph()
FG.add_weighted_edges_from([(1, 2, 0.125), (1, 3, 0.75), (2, 4, 1.2), (3, 4, 0.375)])
# 开始画图
pos = nx.spring_layout(FG, k=10) # For better example looking
nx.draw(FG, pos, with_labels=True)
plt.show()
for n, nbrs in FG.adj.items(): # 邻接矩阵
for nbr, eattr in nbrs.items():
wt = eattr['weight']
print('way1-(%d, %d, %.3f)' % (n, nbr, wt))
for (u, v, wt) in FG.edges.data('weight'): # u = 节点1 v = 节点2 wt = weight
print('way2-(%d, %d, %.3f)' % (u, v, wt))
效果图:
参考资料
networkx 节点与边的方法API:https://networkx.org/documentation/stable/reference/functions.html
networkx 中文教程网站:https://www.osgeo.cn/networkx/index.html