#PythonBasemap如何使用';对于循环';?

#PythonBasemap如何使用';对于循环';?,python,matplotlib-basemap,Python,Matplotlib Basemap,我想用“for loop”在底图上以地理坐标(纬度、经度)绘制nc4数据。我在下面附上了我的代码 files = [file for file in glob.glob('*.nc4')] fig, axs = plt.subplots(1,3) axs = axs.ravel() for i in range(len(files)): data = nc.Dataset(files[i],'r') zdata = data.variables['Z'][:,:,:] var

我想用“for loop”在底图上以地理坐标(纬度、经度)绘制nc4数据。我在下面附上了我的代码

files = [file for file in glob.glob('*.nc4')]
fig, axs = plt.subplots(1,3)
axs = axs.ravel()

for i in range(len(files)):
   data = nc.Dataset(files[i],'r')
   zdata = data.variables['Z'][:,:,:]
   var_lon = data.variables['lon'][:]
   var_lat = data.variables['lat'][:]

   X, Y = np.meshgrid(var_lon,var_lat)

   map = Basemap()
   map.drawcoastlines()
    
   im = axs[i].contourf(X,Y,Zdata)

   axs[i].set_xlabel('Longitude (deg)')
   axs[i].set_ylabel('Lattitude (deg)')
   clb = fig.colorbar(im, ax= axs[i],orientation="vertical", pad=0.03, aspect=16 )
   clb.set_label('Z (%s)'%(data.variables['Z'].units),size=10,rotation=90,labelpad=10)'

plt.show()
我从代码中得到的是它只显示最后一个底图。我以为底图会显示我绘制的所有地图。


欢迎任何注释

而无需在
Basemap()
中指定轴(此处
ax=axs[i]
)作为参数。在每次迭代中,默认/当前轴将在该代码行生效。最后,过程评估在
plt.show()
处结束,因此,最后一个轴成为当前轴是唯一绘制了海岸线的轴

要正确操作,只需更改代码行:-

map = Basemap()


并且输出图应该与预期的一样。

在每次迭代中,如果不将轴(此处为
ax=axs[i]
)指定为
Basemap()
中的参数,默认/当前轴将在该行代码上生效。最后,过程评估在
plt.show()
处结束,因此,最后一个轴成为当前轴是唯一绘制了海岸线的轴

要正确操作,只需更改代码行:-

map = Basemap()

输出图应与预期一致