Python中cartopy怎么只将海洋画成灰色,陆地不受影响
时间: 2023-06-09 11:06:42 浏览: 1009
可以通过设置 `facecolor` 参数来实现将海洋区域的颜色设置为灰色,同时保持陆地区域不受影响。具体的代码如下:
```python
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
# 创建地图投影
projection = ccrs.PlateCarree()
# 创建地图对象
fig, ax = plt.subplots(subplot_kw={'projection': projection})
# 设置海洋的颜色为灰色
land = cfeature.NaturalEarthFeature('physical', 'land', '50m',
edgecolor='face',
facecolor=cfeature.COLORS['land'])
ocean = cfeature.NaturalEarthFeature('physical', 'ocean', '50m',
edgecolor='face',
facecolor='#999999')
# 添加地图要素
ax.add_feature(land)
ax.add_feature(ocean)
# 设置地图范围
ax.set_extent([-180, 180, -90, 90], crs=projection)
# 显示地图
plt.show()
```
需要注意的是,`facecolor` 参数所设置的颜色只会影响该要素的填充颜色,而不会影响其边界的颜色。如果想要将边界的颜色也设置为灰色,可以将 `edgecolor` 参数也设置为 `'face'`。
阅读全文