Нарисуйте взвешенную сложную сеть с NetworkX
Можно ли использовать пакет NetworkX для построения сложной сети с весами, заданными распределением, например степенным законом? Тогда я могу написать код для рисования распределения веса или силы, или даже дальше, чтобы нарисовать средневзвешенную степень ближайших соседей узла? затем раскраска каждого класса одинаковых степеней или аналогичных сил и т. д.
У меня есть большие данные сложной сети, состоящей из около 300 узлов, и данные о весах отдельных egdes. Как лучше всего нарисовать такую сеть?
1 ответ
Края в 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()