import networkx as nx
# 数据准备
G = nx.DiGraph() # 单边有向图
G.add_edges_from([(1,2), ('x','y'), (2,3)...]) # 一次性添加多条边
nx.draw(G) # 简单画一下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
改变样式
一次性画:
pos = nx.spring_layout(G) # 中心放射状:spring_layout 圆上:circular_layout
nx.draw(G, node_size=10, node_color='#80FFFF', alpha=0.5, pos=pos,
with_labels=False, width=0.3, edge_color='#7B7B7B', # 标签、线条宽度、线条颜色、
arrowsize=7, arrowstyle='->')
- 1
- 2
- 3
- 4
分成:节点和线条画:
pos = nx.spring_layout(G)
# 画边缘
nx.draw_networkx_edges(G, pos, alpha=0.1)
# 画节点
nx.draw_networkx_nodes(
G,
pos,
node_size=50,
vmin=-7, # 颜色的最小值
vmax=25, # 颜色的最大值,让颜色处于最小值和最大值之前分配
node_color=list(acm.values()), # 颜色的程度[0,0,1,3,1,2,2,5...]
cmap=plt.cm.Reds,
)
plt.axis("off"); # 去掉边框
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
更多样式请参考:
1. NetworK-中文翻译
2. 利用Python绘制精美网络关系图