使用NetworkX绘制加权复杂网络
NetworkX这个包可以用来绘制复杂网络,并且可以根据某种分布(比如幂律分布)来设置边的权重吗?那么我能不能写代码来绘制权重分布或者强度分布,甚至进一步绘制某个节点的加权平均最近邻度?然后再给每一类相似度数或相似强度的节点上色等等。
我有一个包含大约300个节点的复杂网络的数据,还有关于每条边权重的数据。绘制这样一个网络的最佳方法是什么呢?
1 个回答
3
在networkx中,边可以使用一个特殊的属性叫做'weight'(权重),这个属性可以在一些需要加权边的算法中使用。你还可以用networkx的绘图命令来考虑这些权重,比如在弹簧嵌入式可视化中通过弹簧的力量来表现。你可以这样做:
>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G = nx.Graph()
>>> # add nodes, edges, etc.
...
>>> nx.draw_spring(G)
>>> plt.show()