如何在Python的matplotlib/basemap中为正投影视图标注经纬线
我正在尝试在使用Python的matplotlib/basemap进行正投影时标记纬线和经线。根据basemap的文档,使用 drawparalles(parallels,labeles=[left,right,top,bottom])
命令在正投影和其他一些投影上标记是无法实现的,这个过程需要手动完成。有没有人能给我推荐一些手动标记纬线和经线的方法呢?
lon2,lat2=m1(lon,lat)
lon3,lat3=m1(lon1,lat1)
cax1=m1.pcolor(lon2,lat2,data1,cmap='jet')
colob=plt.colorbar(fraction=0.05)
colob.set_label(r"Diff. Flux $[cm^{-2}Sr^{-1}s^{-1}]$")
parallels = np.arange(-90,90,15.)
cax4=m1.drawparallels(parallels,labels=[1,0,0,0])
meridian = np.arange(0,360,15.)
cax5=m1.drawmeridians(meridian,labels=[0,0,0,1])
1 个回答
3
我找到了一种解决办法,使用了 matplotlib.annotate
这个命令。
lon2,lat2=m1(lon,lat)
lon3,lat3=m1(lon1,lat1)
cax1=m1.pcolor(lon2,lat2,data1,cmap='jet')
colob=plt.colorbar(fraction=0.05)
colob.set_label(r"Diff. Flux $[cm^{-2}Sr^{-1}s^{-1}]$")
parallels = np.arange(-90,90,15.)
cax4=m1.drawparallels(parallels,labels=[1,0,0,0])
meridian = np.arange(0,360,15.)
cax5=m1.drawmeridians(meridian,labels=[0,0,0,1])
for i in np.arange(len(meridian)):
plt.annotate(np.str(meridian[i]),xy=m1(meridian[i],0),xycoords='data')
for i in np.arange(len(parallels)):
plt.annotate(np.str(parallels[i]),xy=m1(180,parallels[i]),xycoords='data')