Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: MunichongОтветов: 1

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

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()".

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

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

networkx

Ответы

Ответ 1 · рейтинг 22 · Munichong

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы