【绘图基本流程】
(1)导入包并重命名(为使用方便):networkx,matplotlib.pyplot
(2)建立网络
(3)绘制网络:nx.draw() #该方法可以讲网络进行美化,详情见draw()方法
(4)建立布局:pos=nx.spring_layout(BG) #该方法为可选,可以通过建立不同布局对图进行布局方面的美化
(5)网络图的显示,常用到两种方式:A 保存为图片文件;B在窗口中显示,也可以再保存为图片形式
import import networkx as nx #导入networkx包
import matplotlib.pyplot as plt #导入绘图包matplotlib(需要安装,方法见第一篇笔记)
G =nx.random_graphs.barabasi_albert_graph(100,1) #生成一个BA无标度网络G
nx.draw(G) #绘制网络G
plt.savefig("ba.png") #输出方式1: 将图像存为一个png格式的图片文件
plt.show() #输出方式2: 在窗口中显示这幅图像
【网络图的美化】
网络图的简单美化工作,主要通过两种途径:
(1)通过具体化nx.draw()方法来美化,具体的参数用法:
- `node_size`: 指定节点的尺寸大小(默认是300,单位未知,就是上图中那么大的点)
- `node_color`: 指定节点的颜色 (默认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等,具体可查看手册),用“数据字典”赋值的时候必须对字典取值(.values())后再赋值
- `node_shape`: 节点的形状(默认是圆形,用字符串'o'标识,具体可查看手册)
- `alpha`: 透明度 (默认是1.0,不透明,0为完全透明)
- `width`: 边的宽度 (默认为1.0)
- `edge_color`: 边的颜色(默认为黑色)
- `style`: 边的样式(默认为实现,可选: solid|dashed|dotted,dashdot)
- `with_labels`: 节点是否带标签(默认为True)
- `font_size`: 节点标签字体大小 (默认为12)
- `font_color`: 节点标签字体颜色(默认为黑色)
(2)通过使用不同的布局(layout)来美化,目前networkx中主要提供的布局方式有:
circular_layout:节点在一个圆环上均匀分布
random_la