2017-01-09 1 views
0

У меня есть matlibplot и networkx. Я создал график, и я хочу удалить ребра, но я хочу также иметь вершины в одном и том же месте. Возможно ли это с помощью этого пакета python, содержащего: networx и matlibplot? НапримерМожно ли рисовать в networkx, используя текущее размещение узлов на рисунке?

self.figure.clf() 
    self.axes = self.figure.add_subplot(111) 

    print 'generate random graph' 
    self.G.remove_edge(0,1) 
    self.G.remove_edge(0,2) 
    nx.draw(self.G, node_color='c',edge_color='k', with_labels=True, ax=self.axes) 

    self.canvas.draw() 

здесь я хочу, чтобы удалить ребра, но после размещения nx.draw узла не находится в том же положении

ответ

1

В NetworkX, функция draw имеют параметр pos и это может занять словарю укажите положение каждого узла.

См документа здесь: https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.drawing.nx_pylab.draw.html#draw

Более того, для автоматического создания такого словаря, NetworkX предоставляет множество способов, организованных в разделе макета.

См документ здесь: https://networkx.github.io/documentation/development/reference/drawing.html?highlight=layout#module-networkx.drawing.layout

Если нарисовать два графика с тем же словарем позиции, все узлы будут в том же положении.