有没有办法在纸盒地图中旋转纬度刻度标签?我知道在QGIS这样的GIS程序中这是一个非常简单和常用的选项,但在使用cartopy时我找不到任何关于这个主题的内容。
下面是一个简单的例子(我绘制自己的shapefile,我不在这里表达):
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
mapp = plt.subplot(111, projection=ccrs.PlateCarree())
mapp.set_extent([-44.2, -45.6, -23.36, -24.35])
mapp.set_yticks([-23.5,-24], crs=ccrs.PlateCarree())
mapp.set_xticks([-44.5,-45.5], crs=ccrs.PlateCarree())
lon_formatter = LongitudeFormatter(number_format='.1f')
lat_formatter = LatitudeFormatter(number_format='.1f')
mapp.xaxis.set_major_formatter(lon_formatter)
mapp.yaxis.set_major_formatter(lat_formatter)
plt.show()
这不是最好的MCVE,但无论如何,它会横向显示纬度刻度标签 - 这是标准。我的问题是:有没有办法将纬度刻度标签(或y刻度标签)旋转90°,以便它们垂直?
答案 0 :(得分:1)
由于图形轴只是一个特殊的matplotlib轴,你可以对matplotlib图做很多事情,你也可以做一个图表情节。
对于旋转刻度标签,有一个example in the matplotlib gallery。
因此,要旋转y刻度标签,只需在代码中添加以下内容:
plt.yticks(rotation='vertical')
我还注意到你的地图范围的顺序错误。订单应该是
[x_min, x_max, y_min, y_max]
所以你的代码应该是这样的:
mapp.set_extent([-24.35, -23.36, -45.6, -44.2])