如何使用Python中的Matplotlib/Basemap在正射投影中标记平行线/子午线

3

我正在尝试使用python中的matplotlib/basemap在正射投影上标注纬线/经线。根据basemap文档,在正射投影和其他一些投影中,使用drawparallels(parallels,labels=[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个回答

2
我找到了一个解决方法,使用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')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接