放大 cartopy 地图并添加海洋特征会将整个地块变为蓝色?

Zooming in on cartopy map and adding the ocean feature changes the entire plot to blue?

我有一张欧洲的图,但是,出于某种原因,当我包含 ax.add_feature(cartopy.feature.OCEAN) 时,它会将整个图变成蓝色。我不确定如何解决这个问题,如有任何帮助,我们将不胜感激!

只有当我更改范围以进一步放大欧洲时才会发生这种情况。

plt.figure(figsize=(9, 9))
ax = plt.axes(projection=cartopy.crs.TransverseMercator(32))
ax.add_feature(cartopy.feature.BORDERS, linestyle='-', alpha=1)
ax.coastlines(resolution='110m')
ax.gridlines()
ax.set_extent((-7.5, 50, 34, 55), cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.OCEAN)
plt.show()

cartopy.feature.OCEAN 是更复杂的 NaturalEarthFeature 函数的简单版本,使用起来更安全。这里有几行代码,你可以用它来替换麻烦的部分。

替换

ax.add_feature(cartopy.feature.OCEAN)

choice = 1
if choice==1:
    # this solves the problem
    ocean110 = cartopy.feature.NaturalEarthFeature('physical', 'ocean', \
        scale='110m', edgecolor='none', facecolor=cartopy.feature.COLORS['water'])
    ax.add_feature(ocean110)
else:
    # this (sometimes) causes the ocean spill all over
    ax.add_feature(cartopy.feature.OCEAN)

这允许您设置 choice=1 或 0 并且 运行 检查情节。

如果选择=1,输出将是: