Интервал между сетями Python - PullRequest
       18

Интервал между сетями Python

0 голосов
/ 20 февраля 2019

У меня есть 1000 разных имен, каждое из которых представляет собой узел.Каждое имя может быть связано с 0..1000 другими именами неограниченное количество раз.Я хотел бы построить график таким образом, чтобы расстояние между двумя узлами было обратно пропорционально количеству их подключений.

Пример:

'node1' : ['node2','node2','node2','node2','node2','node3']
'node2' : ['node1','node1','node1','node1','node1']
'node3' : ['node1']

node1 и node2 должно собраться вместе, а node3 должно быть дальше.

Возможно ли это?В настоящее время я строю график с использованием следующего кода:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_nodes_from(grapharr.keys())
for k in grapharr:
    for j in grapharr[k]:
        G.add_edge(k,j)

nx.draw_networkx(G, **options)

grapharr - это структура dict, где ключи - это узлы, а значения - это массивы, содержащие соединения для конкретного узла.

1 Ответ

0 голосов
/ 01 апреля 2019

невозможно в общем случае.Посмотрите на этот график:

enter image description here

Представьте, что центральный узел имеет тысячу соединений друг с другом, но у «квадратных» узлов есть только одно соединение между ними,Как вы их нарисуете?

В любом случае, вы можете установить уровень связности в качестве веса ребра и использовать силовые макеты, которые попытаются создать лучший макет (но, конечно, не на 100% оптимальный).В networkx имеется:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...