在 NorthPolarStereo Cartopy 中设置纬度刻度标签的经度

问题描述

我正在使用类似于以下内容代码绘制北极地区的图:

from cartopy.mpl.gridliner import LONGITUDE_FORMATTER,LATITUDE_FORMATTER
import matplotlib.ticker as mticker
import cartopy.crs as ccrs

fig,ax = plt.subplots(1,1,figsize=(8,8),subplot_kw={'projection': ccrs.northPolarstereo()})

ax.scatter([x[0] for x in max_coords[:-1]],[x[1] for x in max_coords[:-1]],color='k',s=50,marker='x',transform=ccrs.PlateCarree(),zorder=5,label='BSH Center\n1980-2020')

ax.set_extent([-2.633e+06,2.696e+06,-6e+04,2.9e+06],crs=ccrs.northPolarstereo()) 

ax.add_feature(cartopy.feature.LAND,edgecolor='black',zorder=1)

ax.legend(fontsize='x-large')

gl = ax.gridlines(draw_labels=True)

gl.xlocator = mticker.FixedLocator(np.concatenate([np.arange(-180,-89,15),np.arange(90,181,15)]))
gl.xformatter = LONGITUDE_FORMATTER
gl.xlabel_style = {'size': 12,'color': 'k','rotation':0}

gl.yformatter = LATITUDE_FORMATTER
gl.ylocator = mticker.FixedLocator(np.arange(70,86,5),200)

enter image description here

如您所见,表示纬度的刻度线位于经度 135E。这意味着 75N 刻度在一个岛上并且不清晰。我希望这些刻度线位于 120E 线上,但不知道如何移动它们。我以为我可以用上面代码的最后两行来完成,但它们似乎对情节没有任何影响。

解决方法

这需要对标签进行一些修改。首先,您可以运行以下代码:

1

并发现 gl.label_artists 标签位于经度 138 度处。有了这些信息,您可以将其更改为其他值,我使用以下代码行选择了 126:

in line

np-proj

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...