本次笔记内容:
网络图的简要结构
以相关系数表为例:networkx构建网络结构
Cytoscape可视化网络图
co-XXX network
网络图的简要结构
网络结构由点及连接点的线组成,反映了点所代表的元素之间的关系。网络图使得我们对各元素之间的关系有一个直观的认识。
点:
点的大小可以表示该元素所包含的样本数/数值大小等;
点的颜色及形状可以表示该元素的类别属性。
线:
线的粗细可以表示两元素之间关联的大小(比如相关系数的大小);
线的颜色可以表示两元素之间关联的方向(比如相关系数的正负),或者你自定义的某些类别;
线可以包含箭头,同样可以表明方向;
线的形状可以为直线或曲线,曲线可以在两个元素之间不重合。以上需根据具体科学目的自定义其属性。
以相关系数表为例network绘制网络图
这里用的networkx是Python一个模块。我们用它来定义构成网络图的点,线,及点线的各种属性。
安装networkx : $ pip install networkx
以下为一个基础示例,可以快速了解一下:
import networkx as nx
import matplotlib.pylab as plt
G = nx.Graph() # 生成一个空的network对象
G.add_node('a',group='t1', your_group='your_group1' ) # 添加每个点(node), group就是node的类别属性,你可以自定义每个node的属性。
G.add_node('b',group='t1', )
G.add_node('c',group='t2')
print(G.node(data=True))
# 点以list储存,是有顺序的,其属性以字典储存。
# [('a', {'group': 't1', 'your_group': 'your_group1'}), ('b', {'group': 't1'}), ('c', {'group': 't2'})]
G.add_edge('a', 'b', weight=0.5,graphics={'fill' : '#CD5C5C'}) # 添加边,a,b两点之间的连线weight为0.5,填充颜色为#CD5C5C
print(G.edge(data=True))
# [('a', 'b', {'weight': 0.5, 'graphics': {'fill': '#CD5C5C'}})]
# 注意以上network各属性的存储方式,可以通过for循环来批量设置点和线的属性。
node_color = ['yellow','yellow','orange']
nx.draw(G,node_color=node_color,node_size=200, with_labels=True)
plt.show()
# 可以结合matplotlib在python里可视化
nx.write_gml(G, 'XXX.gml'