Нарисуйте взвешенную сложную сеть с 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()
Другие вопросы по тегам