轮廓标签未显示
Contour Labels not showing up
我正在尝试在 matplotlib 中的填充等高线图顶部叠加等高线以获得一些大气数据。但是,我的等高线标签并不总是显示在屏幕上。下面是一个例子:
如您所见,轮廓标签只出现在最里面的几个轮廓上。
知道我的轮廓范围早先定义为
list(range(950,1052,4))
我有以下代码来实际绘制:
parallels = np.arange(0.,90,5.)
basem.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
# draw meridians
meridians = np.arange(180.,360.,5.)
basem.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
basem.drawstates()
basem.drawcountries()
if clevs != 0:
cs = basem.contourf(x,y, plotted_var, clevs)
cl = basem.contour(x,y, plotted_var, clevsl, colors='k')
plt.clabel(cl, fmt="%1.0f", fontsize=8)
else:
cs = basem.contourf(x,y, plotted_var, cmap=plt.get_cmap(colorbar),
vmin = vmin, vmax = vmax)
cbar = basem.colorbar(cs, location='bottom', pad = "5%")
cbar.set_label(units)
此外,我的底图定义是:
basem = Basemap(width=5800000,height=3000000,
rsphere=(6378137.00,6356752.3142),\
resolution='h',area_thresh=1000.,projection='lcc',\
lat_1=45.,lat_2=55,lat_0=40,lon_0=-102.)
这是一个错误还是我缺少什么?如果可以的话,我尽量避免使用手册。
输入数据为全球数据集(GFS天气模型)。 x,y的获取方式:
lons2, lats2 = np.meshgrid(lons, lats)
x,y = basem(lons2, lats2)
其中经度、纬度是:
lons = [0.0, 0.25, 0.5, 0.75, 1.0, ..., 359.75, 360.0]
lats = [-90, -89.75, ..., 89.75, 90]
我好像是这样解决问题的:
我要做的是将数据绑定到底图上可以看到的内容。我的输入数据集是一个全球数据集,当我绑定它时(见下面的白色区域),等高线标签大部分出现在地图边界内。这似乎仍然是一个错误 - 我选择的显示区域会改变几乎所有其他气象图形程序(如 GrADS)中等高线标签的位置,但我暂时将其标记为已回答。
我正在尝试在 matplotlib 中的填充等高线图顶部叠加等高线以获得一些大气数据。但是,我的等高线标签并不总是显示在屏幕上。下面是一个例子:
如您所见,轮廓标签只出现在最里面的几个轮廓上。
知道我的轮廓范围早先定义为
list(range(950,1052,4))
我有以下代码来实际绘制:
parallels = np.arange(0.,90,5.)
basem.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
# draw meridians
meridians = np.arange(180.,360.,5.)
basem.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
basem.drawstates()
basem.drawcountries()
if clevs != 0:
cs = basem.contourf(x,y, plotted_var, clevs)
cl = basem.contour(x,y, plotted_var, clevsl, colors='k')
plt.clabel(cl, fmt="%1.0f", fontsize=8)
else:
cs = basem.contourf(x,y, plotted_var, cmap=plt.get_cmap(colorbar),
vmin = vmin, vmax = vmax)
cbar = basem.colorbar(cs, location='bottom', pad = "5%")
cbar.set_label(units)
此外,我的底图定义是:
basem = Basemap(width=5800000,height=3000000,
rsphere=(6378137.00,6356752.3142),\
resolution='h',area_thresh=1000.,projection='lcc',\
lat_1=45.,lat_2=55,lat_0=40,lon_0=-102.)
这是一个错误还是我缺少什么?如果可以的话,我尽量避免使用手册。
输入数据为全球数据集(GFS天气模型)。 x,y的获取方式:
lons2, lats2 = np.meshgrid(lons, lats)
x,y = basem(lons2, lats2)
其中经度、纬度是:
lons = [0.0, 0.25, 0.5, 0.75, 1.0, ..., 359.75, 360.0]
lats = [-90, -89.75, ..., 89.75, 90]
我好像是这样解决问题的:
我要做的是将数据绑定到底图上可以看到的内容。我的输入数据集是一个全球数据集,当我绑定它时(见下面的白色区域),等高线标签大部分出现在地图边界内。这似乎仍然是一个错误 - 我选择的显示区域会改变几乎所有其他气象图形程序(如 GrADS)中等高线标签的位置,但我暂时将其标记为已回答。