图学习-第一章 可视化

#图的简单理解
图是对象之间的关系及特征的表示形态,用于分析已知对象间关系规律,并应用于对关系网络中其他未知对象的特征或行为预测。
#图的可视化-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:根据图的拉普拉斯特征向量排列节