我必须承认,我仍然有问题理解正确的设置和关系的情节和它的部分与matplotlib,仍然是混淆如何fig与plt与ax相互关联,所以我只是尝试和错误,文档有时更令我困惑。:—(
我正在绘制天气值,从一个json和点。我可以用下面的代码绘制,如下图所示
fig=plt.figure(figsize=(10,8))
ax=fig.add_subplot(1,1,1,projection=mapcrs)
ax.set_extent([-93,-86,13,19],datacrs)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.scatter(lon,lat,c=dat,transform=datacrs)
我就能画出
然后我用下面的代码使用metpy生成插值
gridx, gridy, gridz = interpolate_to_grid(lon, lat, dat, interp_type='rbf', hres=.1, rbf_func='linear', rbf_smooth=0)
fig=plt.figure(figsize=(15,15))
ax=fig.add_subplot(1,1,1,projection=mapcrs)
#ax = fig.add_axes([0, 0, 1, 1], projection=mapcrs)
#ax.set_extent([-93,-86,13,19])
#ax.add_feature(cfeature.COASTLINE)
#ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.contourf(gridx,gridy,gridz,levels=np.arange(10,60,2),cmap='viridis')
plt.plot(lon,lat,'k.',color='white')
我得到了所需的插值点,但不能显示的特点,是如何做到这一点?如果我取消对ax.extent的注解,我所看到的只是一个空的白色图形。如果我取消注解轴。功能插值显示为下图,但不是Map。
感谢您的帮助和指导。
1条答案
按热度按时间1mrurvl11#
您在
contourf
函数中缺少transform
关键字参数,以便给予插值数据的坐标系。下面是一个随机数据的最小工作示例,获得的输出如下: