事业繁忙,时间有限,没空对本程序进行解说,看官请看注释或者自行揣摩。
""" networkx绘图示例:随机产生颜色图 """ import numpy as np import networkx as nx import matplotlib.pyplot as plt np.random.seed(1234) p = dict((i, (np.random.uniform(0, 1), np.random.uniform(0, 1))) for i in range(200)) g = nx.random_geometric_graph(200, 0.12, pos=p) # 根据p产生随机几何图 pos = nx.get_node_attributes(g, 'pos') print(pos==p) # 下面查找到中间点(0.5, 0.5)最近的距离 dists = [(x - 0.5)**2 + (y - 0.5)**2 for x, y in list(pos.values())] print(dists) # 所有节点到中间点的距离 ncenter = np.argmin(dists) # 检索数组中最小位置,返回下标 print('ncenter=',ncenter) # 渲染图形,颜色靠的是到中间点的距离决定 p = nx.single_source_shortest_path_length(g, ncenter) # 注意重定义了p plt.figure() nx.draw_networkx_edges(g, pos, alpha=0.4) nx.draw_networkx_nodes(g,pos, nodelist=list(p.keys()), node_size=120, alpha=0.5, node_color=list(p.values()), cmap=plt.cm.jet_r) # 最后一个参数是将色标逆过来 plt.show()
发表评论