python加快绘图速度_提高matplotlib中多个数字的绘图速度

在使用matplotlib的pcolormesh生成高分辨率png图像时,遇到了长时间的绘图过程。目前每个图像绘制需要15到20秒。由于代码需要在crontab定时任务中运行,寻找方法以减少绘图时间而不影响图像质量。已经尝试使用'Agg'后端,并按区域循环绘制,但希望找到同时绘制多个‘域’的方法,利用多核提升效率。欢迎其他加速建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有使用matplotlib pcolormesh生成大量png图像的代码 . 图像是高分辨率的,因此需要一段时间才能绘制图像 . 我试图尽可能地减少绘图时间而不影响图形的干净外观,但每个图像仍然需要大约15到20秒才能保存到文件中 .

问题是,此代码必须在操作设置中工作,当脚本在crontab上运行时(每当新数据可用时),每隔约5分钟生成一次图像 . 对于仅1个变量,我通过循环包含我的不同 Map 域的边界的字典来生成6个(或更多不同区域)的图像:

# Using the 'Agg' backend because this will be run automatically

# Not sure if there are any faster alternatives to Agg

import matplotlib

matplotlib.use('Agg')

# The map domains used:

domains = {'neweng': [40.7, 48, -80, -66], 'midatl': [35.5, 45, -87.5, -70]}

# Pull data from a file and do some calculations

# Now we plot for each domain

for region, constraint in domains.iteritems():

# region is name of domain, constraints are the values of lat/lon min and max

mH = Basemap(projection='mill', llcrnrlon=constraint[2], \

urcrnrlon=constraint[3], llcrnrlat=constraint[0], \

urcrnrlat=constraint[1], resolution='h')

# Simplified version of plotting

plt.figure(figsize=[15,12])

mH.pcolormesh(lons, lats, Twf, cmap=my_cmap, shading='gouraud')

mH.drawcoastlines()

mH.drawcountries()

mH.drawstates()

mH.drawcounties()

# Do some other stuff

plt.savefig('/home/kschneider/Documents/wetbulb/Images/' + region + fcst_hr_str, bbox_inches='tight')

我已经阅读过如何在python中使用子处理来同时绘制多个图像,同时使用多个核心,但我不确定如何将它应用于我的情况 . 在这种情况下,我想同时绘制多个“域” .

另外,我欢迎任何其他关于如何提高速度的建议 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值