保存多个地块 [英] Saving multiple plots

查看:70
本文介绍了保存多个地块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

我以前用过

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.

推荐答案

您要做的就是提供唯一的文件名.您可以使用一个计数器:

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

我做了什么:

使用 enumerate()函数<.

使用计数器和模板为每个图生成新的文件名.

Used the counter and the template to generate a new filename for each plot.

这篇关于保存多个地块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆