保存多个图

use*_*859 7 python matplotlib

我有这个代码从文件夹中的所有文本文件生成多个图.它运行得很好,并显示了情节,但我不知道如何保存所有.

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()
Run Code Online (Sandbox Code Playgroud)

我以前用过

fileName="C:\documents\FirstPlot.png"
plt.savefig(fileName, format="png")
Run Code Online (Sandbox Code Playgroud)

但我认为这只是将每个图表保存到一个文件中并覆盖最后一个.

Mar*_*ers 10

您所要做的就是提供唯一的文件名.你可以用一个柜台:

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
Run Code Online (Sandbox Code Playgroud)

我做了什么: