我正在尝试使用matplotlib和底图在一系列中创建多个图像。基本上,我试图获取气象模型输出数据,并在每个时间步骤绘制它的情节。但是,我正在尝试有效地做到这一点,而不是清除图形并在每个时间步骤重绘所有内容(尤其是底图事物)。以下是相关代码。
basem = Basemap(llcrnrlon=setlats[1], llcrnrlat=setlats[0],
urcrnrlon=setlats[3], urcrnrlat=setlats[2],
projection='mill', resolution='l')
...
x,y = basem(lons, lats)
basem.drawcoastlines()
parallels = np.arange(0.,92,10.)
basem.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
# draw meridians
meridians = np.arange(180.,360.,10.)
basem.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
basem.drawstates()
basem.drawcountries()
cs = basem.contourf(x,y, plotted_var, levels=clevs,
cmap = plt.get_cmap(colorbar), extend="max")
cl = basem.contour(x,y, contoured_var, levels=clevsl, colors='k')
cb = basem.barbs(x[points],y[points],
barbs_var_u[points], barbs_var_v[points],
barbcolor='k',flagcolor='k', pivot='middle',
length=4)
...
for time in range(time+1,maxt+1):
timef = time
plotted_var = multf(np.array(data2[var])[timef,\
bounds[0]:bounds[1],bounds[2]:bounds[3]])
if barbs >=0 or barbs ==-2:
cb[0].set_UVC(barbs_var_u[points], barbs_var_v[points])
cs.set_array(plotted_var)
cl.set_array(contoured_var)
...
然而,虽然这会改变倒钩,但它不会改变轮廓(填充或未填充)。我很确定set_array不是我想要使用的命令,但是我深入研究并且找不到set_uvc等价物。另外,我也尝试过rave_grave_var和contoured_var,但也没有改变。注意:我只是尝试更新轮廓图的z分量(颜色),x和y需要保持不变。