Вы можете использовать атрибут seed для spring_layout
, чтобы запретить перемещению узлов вашего графика каждый рисунок:
seed
(int, RandomState instance or None optional (default=None))
- Установить случайное состояние для детерминированных макетов узлов.Если int, seed - это начальное число, используемое генератором случайных чисел, если numpy.random.RandomState
instance, seed - генератор случайных чисел, если None
, генератор случайных чисел - это экземпляр RandomState
, используемый numpy.random.
Или укажите макет самостоятельно, например:
pos = {
1: [0, 1],
2: [2, 4]
...
}
Вы можете комбинировать оба метода:
G3 = nx.Graph()
G3.add_weighted_edges_from([
(1,2,1),
(2,3,2),
(3,4,3),
(3,6,1),
(4,5,4)
])
pos = nx.spring_layout(G3, scale=2, seed=84)
pos[1] = [-20, 0]
pos[5] = [20, 0]
nx.draw(
G3,
pos,
node_size=500,
alpha=0.9,
labels={node:node for node in G3.nodes()}
)
edge_labels = nx.get_edge_attributes(G3,'weight')
nx.draw_networkx_edge_labels(G3, pos, edge_labels = edge_labels)
Вы можете использовать его, если хотите установить определенные узлы в специальных местах.