![](/img/trans.png)
[英]Placement of latitude labels in cartopy with polar stereographic projection
[英]How do I get smooth gridlines in cartopy polar stereographic plots with matplotlib?
使用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()
如您所见,平行线是点之间的一系列直线段。 每条线上没有足够的点使它们看起来光滑。 如何使平行线更圆?
问:如何使平行线更圆?
答:您需要更大的gridlines()
创建的gridliner
对象的n_steps
属性值。 它的默认值是30.这是将值设置为90的相关代码,并生成更好的绘图。
gl = ax.gridlines(draw_labels=False, xlocs=None, ylocs=None)
gl.n_steps = 90
见这里的参考。
样本输出:
这是由于此用例的默认阈值太大。 这不是Cartopy投影界面的用户可控部分。 你可以使用private _threshold
属性来破解它,将它除以100对你的用例来说是合理的:
from matplotlib import pyplot
import cartopy.crs
hacked_proj = cartopy.crs.NorthPolarStereo()
hacked_proj._threshold /= 100.
ax = pyplot.axes(projection=hacked_proj)
ax.set_extent((-180, 180, 60, 90), crs=cartopy.crs.PlateCarree())
ax.gridlines()
pyplot.show()
这不是一个很好的解决方案,因为它使用了Stereographic
类的实现细节,最好在Cartopy中更好地设置它。 使用此用例在Cartopy Github仓库上打开票证将是一个很好的开始https://github.com/SciTools/cartopy/issues 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.