2013-06-14 5 views
25

Wie bekommt man matplotlib.pyplot zu „vergessen“ vorherigen Plotsmatplotlib.pyplot wird vorherige Plots nicht vergessen - wie kann ich spülen/aktualisieren?

ich versuche mehrere Mal mit matplotlib.pyplot

Der Code sieht wie folgt zu zeichnen:

def plottest(): 
    import numpy as np 
    import matplotlib.pyplot as plt 


    a=np.random.rand(10,) 
    b=np.random.rand(10,) 
    c=np.random.rand(10,) 


    plt.plot(a,label='a') 
    plt.plot(b,label='b') 
    plt.plot(c,label='c') 
    plt.legend(loc='upper left') 
    plt.ylabel('mag') 
    plt.xlabel('element)') 
    plt.show() 

    e=np.random.rand(10,) 
    f=np.random.rand(10,) 
    g=np.random.rand(10,) 


    plt.plot(e,label='e') 
    plt.plot(f,label='f') 
    plt.plot(g,label='g') 
    plt.legend(loc='upper left') 
    plt.ylabel('mag') 
    plt.xlabel('element)') 
    plt.show() 

Leider halte ich die gleiche Handlung bekommen (eigentlich von einem anderen Code, den ich vor einiger Zeit ausgeführt habe), egal was ich mache.

Ähnliche Code hat früher für mich gearbeitet.

Ich habe bei diesen Fragen sieht:

How to "clean the slate"?

Matplotlib pyplot show() doesn't work once closed

(python) matplotlib pyplot show() .. blocking or not?

und versuchte plt.show(), plt.clf() und plt.close ohne Erfolg verwenden.

Irgendwelche Ideen?

Antwort

49

setzen eher plt.gcf().clear() nach jedem plt.show() verwende ich würde. Es wird nur die Figur gelöscht, anstatt sie zu schließen und wieder zu öffnen, die Fenstergröße beizubehalten und Ihnen eine bessere Leistung zu geben.

9

Ich entdeckte, dass dieses Verhalten nur auftritt, nachdem ein bestimmtes Skript ausgeführt wurde, ähnlich dem in der Frage. Ich habe keine Ahnung, warum es passiert.

Es funktioniert (frischt die Graphen), wenn ich

plt.clf() 
plt.cla() 
plt.close() 

nach jedem plt.show()

Verwandte Themen