如何使用Python在文件夹中保存多个图?

时间:2016-02-25 14:55:33

标签: python matplotlib

这是我在python中的程序,我试图在一个文件夹中保存多个图,但它似乎不起作用。我怎么能这样做?

for i in range(0:244):
plt.figure()
y = numpy.array(Data_EMG[i,:])
x = pylab.linspace(EMG_start, EMG_stop, Amount_samples)
plt.xlabel('Time(ms)')
plt.ylabel('EMG voltage(microV)')
pylab.plot(x, y)
pylab.show(block=True)

2 个答案:

答案 0 :(得分:7)

您可以使用savefig功能。

for i in range(0:244):
    plt.figure()
    y = numpy.array(Data_EMG[i,:])
    x = pylab.linspace(EMG_start, EMG_stop, Amount_samples)
    plt.xlabel('Time(ms)')
    plt.ylabel('EMG voltage(microV)')
    plt.savefig('EMG {0}.jpg'.format(i))

答案 1 :(得分:7)

首先检查身份。希望您的代码实际上是

for i in range(0:244):
    plt.figure()
    y = numpy.array(Data_EMG[i,:])
    x = pylab.linspace(EMG_start, EMG_stop, Amount_samples)
    plt.xlabel('Time(ms)')
    plt.ylabel('EMG voltage(microV)')
    pylab.plot(x, y)
    pylab.show(block=True)

在每次迭代中,您都会完全生成一个新图形。这非常无效。你也只是在屏幕上绘制你的图形,而不是实际保存它。更好的是

from os import path
data = numpy.array(Data_EMG)                 # convert complete dataset into numpy-array
x = pylab.linspace(EMG_start, EMG_stop, Amount_samples) # doesn´t change in loop anyway

outpath = "path/of/your/folder/"

fig, ax = plt.subplots()        # generate figure with axes
image, = ax.plot(x,data[0])     # initialize plot
ax.xlabel('Time(ms)')
ax.ylabel('EMG voltage(microV)')
plt.draw()
fig.savefig(path.join(outpath,"dataname_0.png")

for i in range(1, len(data)):
    image.set_data(x,data[i])
    plt.draw()
    fig.savefig(path.join(outpath,"dataname_{0}.png".format(i))

应该快得多。