图学习-第一章 可视化
#图的简单理解
图是对象之间的关系及特征的表示形态,用于分析已知对象间关系规律,并应用于对关系网络中其他未知对象的特征或行为预测。
#图的可视化-networkx
*python 3.6,networks 2.4,matplotlib 3.1.3
‘’’
import networkx as nx
import matplotlib.pyplot as plt
##生成无向图
G = nx.Graph()
#添加节点
G_karate = nx.karate_club_graph()
for node in G_karate.nodes:
G.add_node(node)
#添加边
for edge in G_karate.edges():
G.add_edge(edge[0],edge[1])
#图可视化
plt.figure(figsize=(30,30))
nx.draw(G, node_size=1500, width=2, nodelist=G_karate.nodes,node_color=‘r’,with_labels=True,font_size=24)
plt.savefig(‘graph_1.png’, transparent=True)
‘’’
#生成有向图
‘’’
G = nx.DiGraph()
##添加节点
G_karate = nx.karate_club_graph()
for node in G_karate.nodes:
G.add_node(node)
##添加边
for edge in G_karate.edges():
G.add_edge(edge[0],edge[1])
##图可视化
plt.figure(figsize=(20,20))
pos = nx.shell_layout(G)
nx.draw(G, node_size=1500, width=2, nodelist=G_karate.nodes,node_color=‘r’,with_labels=True,font_size=24,pos=pos)
plt.savefig(‘graph_2.png’, transparent=True)
‘’
##networkx常用参数link
- 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: 节点标签字体颜色(默认为黑色)
##布局参数pos: - circular_layout:节点在一个圆环上均匀分布
- random_layout:节点随机分布
- shell_layout:节点在同心圆上分布
- spring_layout: 用Fruchterman-Reingold算法排列节点
- spectral_layout:根据图的拉普拉斯特征向量排列节