【问题标题】:How to label parallels/meridian on orthographic projection using matplotlib/basemap in python如何在 python 中使用 matplotlib/basemap 在正交投影上标记平行线/子午线
【发布时间】:2014-09-11 14:55:13
【问题描述】:

我正在尝试在 python 中使用 matplotlib/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])

【问题讨论】:

    标签: python matplotlib matplotlib-basemap


    【解决方案1】:

    我找到了使用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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多