График Python networkx: не рисовать старый график вместе с новым графиком

Ниже приведен мой код:

import networkx as nx
for i in range(2):
    G = nx.DiGraph()
    if i==0:
        G.add_edge("A", "B")
    elif i==1:
        G.add_edge("A", "C")
    import matplotlib.pyplot as plt
    nx.draw(G)
    plt.savefig(str(i)+".png")
    G.clear()

Он должен рисовать линию AB в файле 0.png и линию AC в файле 1.png. Но после того, как я его запустил. В 0.png есть одна линия AB, а в 1.png их две: AB и AC. Похоже, что память для 0.png не очищается, хотя у меня было "G.clear()".

Кто-нибудь знает, как это исправить?


person Munichong    schedule 21.03.2012    source источник
comment
У меня есть решение. Добавьте plt.clf() после plt.savefig(str(i)+.png). Он может очистить старый график в pyplot. Я надеюсь, что это может помочь любому.   -  person Munichong    schedule 22.03.2012
comment
Не могли бы вы опубликовать это как ответ, чтобы он был понятен как ответ, и пометить его как принятый ответ на будущее, ура.   -  person EdChum    schedule 22.03.2012


Ответы (1)


У меня есть решение.

Добавьте plt.clf() после plt.savefig(str(i) + ".png"). Он может очистить старый график в pyplot. Я надеюсь, что это может помочь кому-то.

person Munichong    schedule 15.04.2012