如何使用 matplotlib 在 cartopy 极地立体图中获得平滑的网格线?

tjd*_*tjd 2 python matplotlib cartopy

当使用 matplotlib 和 cartopy 的 NorthPolarStereo 投影进行绘图时,恒定纬度网格线(平行线)不是平滑的圆圈。

这是一个最小的工作示例:

from matplotlib import pyplot
import cartopy.crs

ax = pyplot.axes(projection=cartopy.crs.NorthPolarStereo())
ax.set_extent((-180, 180, 60, 90), crs=cartopy.crs.PlateCarree())
ax.gridlines()

pyplot.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如您所看到的,平行线是点之间的一系列直线段。每条线上没有足够的点来使它们看起来平滑。如何使平行线更圆?

swa*_*hai 5

问:如何使平行线更圆?

A:您需要创建的对象n_steps的属性值较大。它的默认值为 30。以下是将该值设置为 90 的相关代码,并生成更好的绘图。gridlinergridlines()

gl = ax.gridlines(draw_labels=False, xlocs=None, ylocs=None)
gl.n_steps = 90
Run Code Online (Sandbox Code Playgroud)

请参阅此处的参考。

示例输出:

在此输入图像描述