-2

I am trying to save multiple histograms while iterating through a loop but it just ends up saving as a blank image. I tried the exact same code outside the loop and it seems to work, so I'm not sure why it's not working in the loop.

This is what I have right now

for x in range(len(7)):
    plt.figure(figsize = (10, 6))
    hist, bins, patches = plt.hist(list[x], 100)
    plt.title('pol frac reg '+ str(x))
    plt.show()
    plt.savefig('pol_frac_' + str(x))
0

1 Answer 1

1

When you show an image, it clears it afterwards. As explained in the Matplotlib documentation:

If you want an image file as well as a user interface window, use pyplot.savefig before pyplot.show. At the end of (a blocking) show() the figure is closed and thus unregistered from pyplot. Calling pyplot.savefig afterwards would save a new and thus empty figure.

Try to save first, and then show:

for x in range(len(7)):
    plt.figure(figsize = (10, 6))
    hist, bins, patches = plt.hist(list[x], 100)
    plt.title('pol frac reg '+ str(x))
    plt.savefig('pol_frac_' + str(x))
    plt.show()
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.