Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

savefig loop adds previous plots to figure

I am trying to use a forloop to produce figures for each set of data I have, but while the .show() command produces the correct figure, .savefig() keeps adding the previous plotted values to the new figure. In my forloop, this is the relevant sample of the code.

import matplotlib.pyplot as plt plt.plot(X,Y[:,0],'o-') plt.xlabel('x') plt.savefig('plot'+str(i)+'.png') 

As a comparison, here is the savefig plot and here is that shown by show(). As can be seen, the savefig() plot also plotted the previous result.

like image 524
zalba19 Avatar asked Jun 09 '16 19:06

zalba19


1 Answers

You have to close current figure after saving with function plt.close(): http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.close

Or you have to clean current figure after saving by plt.clf(): http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.clf

like image 140
Serenity Avatar answered Sep 23 '22 19:09

Serenity