用contou更新z数组

2024-09-19 23:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用matplotlib和basemap在一个系列中创建几个图像。从本质上说,我试图采取气象模型输出数据,并使它在每一个时间步绘图。然而,我正在努力做到这一点,没有清除的数字和重绘一切(尤其是底图的东西)在每一个时间步。下面是相关代码。你知道吗

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\u array不是我想要使用的命令,但是我已经深入研究了,找不到set\u uvc的等价命令。另外,我也尝试过去线绘制的和等高线的,这也是不变的。注意:我只是想更新轮廓图的z分量(颜色),x和y需要保持不变。你知道吗


Tags: timevarnp时间arraypointssetbounds