matplotlib.pyplot will not forget previous plots - how can I flush/refresh?

How do you get matplotlib.pyplot to "forget" previous plots

I am trying to plot multiple time using matplotlib.pyplot

The code looks like this:

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

Unfortunately I keep getting the same plot (actually from some other code which I ran and completed a while ago) no matter what I do.

Similar code has worked previously for me.

I have looked at these questions:

How to "clean the slate"?

Matplotlib pyplot show() doesn't work once closed

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

and tried using plt.show(), plt.clf() and plt.close to no avail.

Any ideas?

I would rather use plt.gcf().clear() after every plt.show(). It will just clear the figure instead of closing and reopening it, keeping the window size and giving you a better performance too.

From: stackoverflow.com/q/17106288

Back to homepage or read more recommendations: