我想编写一个程序,从100个文本文件的区域创建100个蒙版图。即for fnum in range(1,100,1):
文本文件编号为xydata1.txt,xydata2.txt ...直到xydata100.txt。
如何在Python中做得最好?
下面是我的绘图程序,其中(文件编号fnum)= 1,2,3 ... 100。
fn = 'xydata'+fnum+'.txt'
y = loadtxt(fn,unpack=True,usecols=[0])
x = loadtxt(fn,unpack=True,usecols=[1])
n = ma.masked_where(gradient(y) < 0, y)
p = ma.masked_where(gradient(y) > 0, y)
pylab.plot(x,n,'r',x,p,'g')
pylab.savefig('data'+fnum+'.png')
pylab.show()
答案 0 :(得分:1)
假设Python 2.7
from glob import glob
from pylab import *
for fname in glob("xydata*.txt"):
x, y = loadtxt(fname, unpack=True, usecols=[1, 0])
mask_inf = gradient(y) < 0
mask_sup = gradient(y) >= 0
plot(x[mask_inf], y[mask_inf], 'r')
plot(x[mask_sup], y[mask_sup], 'g')
legend(("grad(y) < 0", "grad(y) >= 0"))
title(fname)
savefig(fname.replace("xydata", "data").replace(".txt", ".svg"))
clf()
您也可以使用蒙面数组。但它们的唯一优点是避免分配新的内存。如果您的情节足够小,则不需要它们。
顺便说一下,没有“最佳答案”。