#PythonBasemap如何使用';对于循环';?
我想用“for loop”在底图上以地理坐标(纬度、经度)绘制nc4数据。我在下面附上了我的代码#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
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()
到
输出图应与预期一致