以下是一个示例代码,演示了如何使用Cartopy库在地图上给国家上色。
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
# 创建一个地图投影
projection = ccrs.PlateCarree()
# 创建一个图形窗口和子图
fig, ax = plt.subplots(figsize=(10, 6), subplot_kw=dict(projection=projection))
# 设置地图的范围
ax.set_extent([-180, 180, -90, 90], crs=projection)
# 添加海洋特征
ax.add_feature(cfeature.OCEAN, facecolor='lightblue')
# 添加陆地特征
ax.add_feature(cfeature.LAND, facecolor='white')
# 添加国家边界特征
ax.add_feature(cfeature.BORDERS, linestyle=':', edgecolor='gray')
# 给特定的国家上色
countries = ['China', 'United States', 'Russia', 'Brazil']
colors = ['red', 'blue', 'green', 'yellow']
# 遍历每个国家,给其上色
for country, color in zip(countries, colors):
# 获取国家的边界
country_feature = cfeature.NaturalEarthFeature(
category='cultural',
name='admin_0_countries',
scale='50m',
facecolor=color,
edgecolor='black'
)
# 添加国家边界到地图
ax.add_feature(country_feature, linewidth=0.5)
# 显示地图
plt.show()
该示例使用Cartopy库创建一个地图投影,并添加了海洋、陆地和国家边界特征。然后,根据给定的国家和颜色列表,使用cfeature.NaturalEarthFeature类将特定的国家上色,并将其添加到地图中。最后,使用plt.show()函数显示地图。