networkx绘图示例:随机产生颜色图

networkx绘图示例:随机产生颜色图

networkx绘图示例:随机产生颜色图

事业繁忙,时间有限,没空对本程序进行解说,看官请看注释或者自行揣摩。

"""
   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()

李兴球

李兴球的博客是Python创意编程原创博客