我正在使用类似于以下的代码生成数千个 png 文件:
import matplotlib.pyplot as plt
...
for pd in plot_data:
fig = plt.figure(figsize=(5,5))
ax = plt.axes(projection=crs.Mercator())
ax.background_patch.set_facecolor((198/255, 236/255, 253/255))
norm = colors.LogNorm(vmin=(min(data[pd])), vmax=(max(data[pd])))
sm = plt.cm.ScalarMappable(cmap=colormap, norm=norm)
sm.set_array([])
for i, p in enumerate(polygons):
ax.add_patch(PolygonPatch(p,facecolor=colormap(data[pd][i]), transform=ccrs.PlateCarree())
ax.set_extent([west, east, south, north], crs=crs.PlateCarree())
ax.set_facecolor((198/255, 236/255, 253/255))
cb = plt.colorbar(sm)
plt.title(name)
fig.savefig(pd+".png")
plt.close()
Run Code Online (Sandbox Code Playgroud)
每张地图中有 1000 个多边形。主循环的每次迭代执行大约需要 35 秒。for添加多边形的循环需要 5 秒才能执行,而Fig.savefig(pd+".png") 需要 30 秒。我想知道我是否可以fig.savefig(pd+".png")在自己的线程中运行以减少这个瓶颈。我该如何调查这是否可能?
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |