python怎么循环储存图片_python – matplotlib savefig性能,在循环中保存多个png

这篇博客探讨了如何使用Python的matplotlib库在循环中高效保存多个PNG图像,并利用多进程进行优化。作者通过示例代码展示了如何创建一个进程池来并行处理图像保存任务,从而显著减少总耗时。实验表明,在四核处理器上,通过多进程处理,图像保存的时间大约减半。
摘要由CSDN通过智能技术生成

由于这种情况下的限制是对plt.savefig()的调用,因此无法对其进行大量优化.在内部,图形从头开始呈现,需要一段时间.可能减少要绘制的顶点数量可能会减少一点时间.

在我的机器上运行代码的时间(Win 8,i5,4核3.5GHz)是2.5秒.这似乎并不太糟糕.通过使用Multiprocessing可以获得一点改进.

关于多处理的注意事项:在多处理中使用pyplot的状态机应该可以正常工作,这似乎令人惊讶.但确实如此.

在这种情况下,由于每个图像都基于相同的图形和轴对象,因此甚至不必创建新的图形和轴.

我刚刚为你的情况修改了一个answer I gave here,使用多处理和4个核心上的5个进程,总时间大致减半.我附加了一个显示多处理效果的条形图.

import numpy as np

#import matplotlib as mpl

#mpl.use('agg') # use of agg seems to slow things down a bit

import matplotlib.pyplot as plt

import multiprocessing

import time, os

def make_plot(d):

start = time.clock()

x,y=d

#using aspect in this way causes a warning for me

#aspect = np.random.random(1)+y/2.0-x

xrand = np.random.random(2)*x

xlim = [min(xrand), max(xrand)]

yrand = np.random.random(2)*y

ylim = [min(yr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值