【问题标题】:How to make your meridians west-positive in basemap toolkit of matplotlib?如何在 matplotlib 的底图工具包中使您的经络西向正?
【发布时间】:2017-07-17 22:56:47
【问题描述】:

我正在使用 matplotlib 的底图工具包,但在将经线设为西正而不是东正时遇到了麻烦。底图甚至可以做到这一点吗?

除此之外,我在使用底图 API (https://matplotlib.org/basemap/api/basemap_api.html) 中给出的字符串格式说明时遇到了问题。我下面的代码 sn-p 使我的子午线向东,但我不确定如何遵循字符串格式说明,以便在每个刻度增量后有一个“E”或“W”。我究竟做错了什么?

self.meridians = self.basemap_ax.drawmeridians(numpy.around(numpy.degrees(coord_lons)),
    labels=[1,0,0,1], labelstyle='+/-', fmt="%s", linewidth=0.5, color='gray', yoffset=5) % "E" #This will be either "E" or "W" depending on whether the meridians are east-positive or west-positive.

这是使用以下代码 sn-p 时经络的截图:

谢谢!感谢您的帮助。

【问题讨论】:

  • 为什么不能只让东为正,西为负?
  • 对于东经 90 度,您希望轴/刻度标签如何
  • 在正东,一切都应该在东方。我附上的截图是东正的,这就是增量从-180到+180的原因(从左到右)。在west-positive 中,一切都应该以west 为准。在这种情况下,增量应该(从左到右)从 +180 到 -180。
  • 对于东经 90 度,我希望刻度标签显示“+90 E”。
  • labelstyle 参数似乎只允许加/减 前缀 或 E/W 前缀。 format 参数将一个函数作为参数 - 只需编写一个返回所需字符串的函数。

标签: python matplotlib matplotlib-basemap


【解决方案1】:

我找到了字符串格式化问题的答案。要将“E”附加到每个刻度增量的末尾,我只是这样做了:

self.meridians = self.basemap_ax.drawmeridians(numpy.around(numpy.degrees(coord_lons)),
    labels=[1,0,0,1], labelstyle='+/-', fmt='%g' + 'E', linewidth=0.5, color='gray', yoffset=5)

【讨论】:

    【解决方案2】:

    正如@wwii 提到的格式参数(fmt)可以使用您可以编写自己的格式化函数。

    def fmt_lon(lon):
        str_lon = u'' + str(lon) + '$^\circ$D'
        return str_lon 
    
    def fmt_lat(lat):
        str_lat = u'' + str(lat) + '$^\circ$K'
        return str_lat
    
    
    parallels = m.drawparallels(np.arange(ll_lat+0.5, ur_lat, 2.5), labels=[1, 0, 0, 1], fmt=fmt_lat, fontsize=5, linewidth=0.25)
    
    meridians = m.drawmeridians(np.arange(ll_lon, ur_lon, 2.5), labels=[0, 0, 0, 1], fmt=fmt_lon, fontsize=5, linewidth=0.25)
    

    只需调用所需格式的函数即可。我需要将 (E, N) 的字母更改为土耳其语对应部分 (D, K)。上述函数和调用都有效。

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2016-01-06
      相关资源
      最近更新 更多