使用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
输出的形状没有在不连续处正确连接。
有没有办法纠正这个?或者,我可以任意编辑coastlines()
使用的基础坐标来模拟经度偏移的投影吗?
这是PDF输出中的人工制品,而不是绘图中的任何错误。如果使用show()
将图表显示在屏幕上而不是保存为PDF,则不应再看到该行,同样如果保存为PNG格式。
事实上,有问题的PDF渲染更可能是PDF查看器的问题。我运行你的代码并制作了一个与你在MacOS上使用Preview.app或Chrome浏览时遇到的问题相同的PDF,但是当我在Acrobat Reader中打开它时它看起来很完美。