Как повлиять на позиции на узлах графика для визуализации? - PullRequest
2 голосов
/ 25 марта 2019

У меня есть график, который я прочитал с Networkx из Dotfile, и для его визуализации мне нужно повлиять на положение (x, y) каждого узла.Как я могу это сделать?

Для визуализации я использую Plotly автономный режим на python3.6, и для этого мне понадобятся позиции для ребра и узлов.Сейчас я пытаюсь дать случайные значения, и это, похоже, не работает вообще

В основном, код, который я использую для построения графиков, таков: https://plot.ly/python/network-graphs/ алгоритм использует 'pos' из случайногосоздал Graph, но у меня нет этих координат, и я не знаю, как их сгенерировать.

1 Ответ

1 голос
/ 26 марта 2019

Проблема, которую вы пытаетесь решить, известна как макеты графиков . В сети x есть несколько алгоритмов компоновки графа: networkx.drawing.layout . Вот пример:

import networkx as nx

G = nx.Graph()
G.add_nodes_from([1,2,3,4,5])
G.add_edges_from([(1,2),(2,3),(2,4),(4,5)])
nx.spring_layout(G)

Возвращает координаты всех узлов:

{1: array([-0.73835686,  0.38769421]),
 2: array([-0.11386106,  0.22912486]),
 3: array([0.14264776, 0.81717097]),
 4: array([ 0.21475452, -0.43399004]),
 5: array([ 0.49481564, -1.        ])}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...