0

我想编写一个程序,从 100 个文本文件中创建 100 个蒙版图。IEfor 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()
4

1 回答 1

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

您也可以使用掩码数组。但它们的唯一优点是避免分配新内存。如果您的地块足够小,则不需要它们。

顺便说一句,没有“最佳答案”。

于 2013-02-05T15:19:25.790 回答