Python 在cartopy中使用具有经度偏移投影的轮廓线

Python 在cartopy中使用具有经度偏移投影的轮廓线,python,cartopy,Python,Cartopy,使用cartopy,我试图在以非零经度为中心的投影中绘制填充轮廓: from pylab import * from cartopy import crs xi = linspace(-180, 180, 37) yi = linspace(-90, 90, 19) XI,YI = meshgrid(xi, yi) ZI = cos(pi*XI/180)*cos(pi*YI/180) ax = axes( projection = crs.PlateCarree(central_longit

使用
cartopy
,我试图在以非零经度为中心的投影中绘制填充轮廓:

from pylab import *
from cartopy import crs

xi = linspace(-180, 180, 37)
yi = linspace(-90, 90, 19)
XI,YI = meshgrid(xi, yi)
ZI = cos(pi*XI/180)*cos(pi*YI/180)

ax = axes( projection = crs.PlateCarree(central_longitude = 90) )
contourf(
    XI, YI, ZI, 10,
    transform=crs.PlateCarree(),
    )
ax.coastlines()

savefig('mwe.pdf')
这将生成以下绘图,该图(在某些比例下)显示一条细垂直线(穿过较暗区域的中心),对应于经度值的不连续性(180°E或W)。这大概是因为
contourf
输出的形状在不连续面上没有正确连接

有没有办法纠正这个问题?或者,我可以任意编辑
海岸线()


这是PDF输出中的人工制品,而不是绘图中的任何错误。如果使用
show()
将绘图显示在屏幕上,而不是保存为PDF,则不应再看到该行,同样,如果保存为PNG格式


事实上,有问题的PDF呈现更可能是PDF查看器的问题。我运行了您的代码并生成了一个PDF,当在MacOS上使用Preview.app或Chrome查看时,它与您的问题相同,但当我在Acrobat Reader中打开它时,它看起来完全正常。

是的,我完全同意您的意见,但我想防止这个问题,因为我无法控制潜在读者将使用哪个查看器。毕竟,每隔一个经度都会正确渲染,因此从技术上讲,以“正确的方式”显示等高线是可能的。