我正在使用以下代码绘制NorthPolarStereo地图。我想标注纬度和经度网格线,但是Cartopy似乎只将这些标签放置在图形的顶部/底部,而我希望它们能够在整个图形周围展开。我知道这样的事情一定是可能的,因为这个相关的SO问题提到了:设置NorthPolarStereo Cartopy中的纬度刻度线的经度,但我似乎无法重现它。
此外,是否有任何方法可以自定义内联的y(纬度)标签的位置?它们部分被网格线和海岸线特征遮挡。
此外,是否有任何方法可以自定义内联的y(纬度)标签的位置?它们部分被网格线和海岸线特征遮挡。
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import numpy as np
import matplotlib.ticker as mticker
from matplotlib.offsetbox import AnchoredText
fig = plt.figure(figsize=(5,5))
projection = ccrs.NorthPolarStereo(central_longitude=-100)
ax = plt.subplot(projection=projection)
ax.set_extent([0, 360, 65, 90], crs=ccrs.PlateCarree())
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.LAND)
xticks = np.arange(-180, 181, 30)
yticks = np.arange(70, 91, 10)
gl = ax.gridlines(crs=ccrs.PlateCarree(), color='k', draw_labels=True, dms=True, x_inline=False, y_inline=True)
gl.ylocator = mticker.FixedLocator(yticks)
gl.xlocator = mticker.FixedLocator(xticks)
gl.xlabel_style = {'rotation':0}
text = AnchoredText('© Natural Earth; license: public domain',
loc=4, prop={'size': 10}, frameon=True)
ax.add_artist(text)
plt.show()
生成的图像如下所示: