我正在使用matplotlib的底图工具包,我遇到了使我的经络向西正向而不是向东正向的问题。这是否可以使用底图?
除此之外,我在使用底图API(https://matplotlib.org/basemap/api/basemap_api.html)中提供的字符串格式化说明时遇到了问题。我下面的代码片段使我的经线东向正,但我不确定如何遵循字符串格式化指令,以便在每个刻度增量后有一个“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.
以下是使用此代码段的经线外观的屏幕截图:
谢谢!我很感激帮助。
答案 0 :(得分:2)
我找到了字符串格式问题的答案。附加" E"到每个滴答增量结束时,我只是这样做:
Gson().fromJson(string, JsonArray::class.java)
答案 1 :(得分:0)
正如@wwii所述,格式参数(fmt)可以使用您可以编写自己的格式设置功能。</ p>
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)。以上功能和调用均有效。