首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在一个文件夹中保存多个地块

如何在一个文件夹中保存多个地块
EN

Stack Overflow用户
提问于 2016-02-25 22:55:33
回答 2查看 36.1K关注 0票数 2

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

代码语言:javascript
运行
复制
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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-25 23:31:55

首先,检查标识。希望你的代码能读到

代码语言:javascript
运行
复制
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)

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

代码语言:javascript
运行
复制
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))

应该会快很多。

票数 9
EN

Stack Overflow用户

发布于 2016-02-25 23:06:16

您可以使用savefig函数。

代码语言:javascript
运行
复制
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))
    plt.close()
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35630748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档