2022年 11月 5日

python绘制网络关系图

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绘制精美网络关系图