使用带有经度移位投影的contourf

问题描述 投票:1回答:1

使用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()使用的基础坐标来模拟经度偏移的投影吗?

enter image description here

python cartopy
1个回答
1
投票

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

事实上,有问题的PDF渲染更可能是PDF查看器的问题。我运行你的代码并制作了一个与你在MacOS上使用Preview.app或Chrome浏览时遇到的问题相同的PDF,但是当我在Acrobat Reader中打开它时它看起来很完美。

© www.soinside.com 2019 - 2024. All rights reserved.