2014-09-06 4 views
0

Мой код выглядит следующим образом:Как использовать метод draw() для сетей (python)?

import ConfigParser 
import sys 
import time 
import matplotlib.pyplot as plt 
import networkx as nx 
import json 
from networkx.algorithms import bipartite 

def create_graph(senators): 

    G= nx.Graph() 

    G.add_nodes_from(senators) 

    return G 
senators=["ab","cd","ef"] 
graph = create_graph(senators) 
nx.draw(graph,with_labels=True) 
plt.savefig("p1.png") 



graph.clear() 
graph = nx.DiGraph() 
print graph.nodes() 


nx.draw(graph,with_labels=True) 
plt.savefig("p2.png") 

В моем коде я пытаюсь сделать две фотографии: p1.png и p2.png. После того, как я рисую p1.png, я очищаю график. Однако p2.png имеет тот же узел с p1.png.

Я не знаю, что случилось с моим кодом. Потому что у меня четкий график, поэтому ничего не должно быть в p2.png

В чем проблема?

ответ

0

Существует два отдельных понятия «очистка». Один из них удаляет узлы и ребра из графика (graph.clear), а другой стирает фигуру (plt.clf()). Вы удаляете узлы и края, но не очищаете оси фигур. Итак, что вы сохраняете в p2.png, это только оригинальная цифра p1.png. Попробуйте добавить plt.clf() перед вторым nx.draw().

Смежные вопросы