【发布时间】:2023-02-20 21:01:55
【问题描述】:
我试图弄清楚如何在使用极立体投影 (NorthPolarStereo) 时更改 cartopy 中网格线标签(更具体地说,纬度标签)的位置。我的轴目前看起来像这样:
import matplotlib.pyplot as plt
import matplotlib.path as mpath
import numpy as np
import cartopy.crs as ccrs
# Helper function
# from https://nordicesmhub.github.io/NEGI-Abisko-2019/training/example_NorthPolarStereo_projection.html
def polarCentral_set_latlim(lat_lims, ax):
ax.set_extent([-180, 180, lat_lims[0], lat_lims[1]], ccrs.PlateCarree())
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)
ax.set_boundary(circle, transform=ax.transAxes)
fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(1,1,1,projection=ccrs.NorthPolarStereo(central_longitude=0))
ax.coastlines(linewidth=0.5,color='k')
ax.gridlines(color='C7',lw=1,ls=':',draw_labels=True,rotate_labels=False,ylocs=[60,70,80])
polarCentral_set_latlim((50,90),ax)
奇怪的是,即使 central_longitude 设置为不同的值,纬度标签始终绘制在大约 150E 处。最好,我想将它们与第 180 条子午线对齐(类似于 this plot 中的标签),但我在 gridlines 函数的文档中找不到设置它们位置的选项。我是不是忽略了什么,还是必须用plt.text()手动放置它们?
【问题讨论】:
标签: python matplotlib cartopy