matplotlib.pyplot.savefig需要很长时间

时间:2018-12-31 16:04:51

标签: python matplotlib

我正在使用类似于以下代码的方式来生成数千个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()

每个地图中有1000个多边形。主循环的每次迭代大约需要35秒才能执行。 for循环添加多边形需要5秒钟才能执行,而fig.savefig(pd +“。png”)则需要30秒钟。我想知道是否可以在自己的线程中运行fig.savefig(pd+".png")来减少瓶颈。我如何调查这是否可能?

0 个答案:

没有答案