Saving multiple plots
matplotlib, python
Solution
All you have to do is provide unique filenames. You could use a counter:
fileNameTemplate = r'C:\documents\Plot{0:02d}.png'
for subdir,dirs,files in os.walk(rootdir):
for count, file in enumerate(files):
# Generate a plot in `pl`
pl.savefig(fileNameTemplate.format(count), format='png')
pl.clf() # Clear the figure for the next loop
What I did:
Create a template using python's string formatting syntax
Added a counter to the loop using the `enumerate()` function.
Used the counter and the template to generate a new filename for each plot.
Problem
i have this code to produce multiple plots from all the text files in a folder. It runs perfectly fine and shows the plots but i cant work out how to then save them all. ``` import re import numpy as np import matplotlib.pyplot as plt import pylab as pl import os rootdir='C:\documents\Neighbors for each search id' for subdir,dirs,files in os.walk(rootdir): for file in files: f=open(os.path.join(subdir,file),'r') print file data=np.loadtxt(f) #plot data pl.plot(data[:,1], data[:,2], 'gs') #Put in the errors pl.errorbar(data[:,1], data[:,2], data[:,3], data[:,4], fmt='ro') #Dashed lines showing pmRa=0 and pmDec=0 pl.axvline(0,linestyle='--', color='k') pl.axhline(0,linestyle='--', color='k') pl.show() f.close() ``` I have previously used ``` fileName="C:\documents\FirstPlot.png" plt.savefig(fileName, format="png") ``` but i think this just saves each graph into one file and overwrites the last one.