如何用GeoPandas为印尼地图海域设水色?facecolor参数无效
解决GeoDataFrame绘图时海域颜色不生效的问题
你遇到的问题是因为GeoDataFrame.plot()的color参数会覆盖facecolor,且海域本身不在provinces数据范围内,需要先给绘图轴设置背景色作为海域,再绘制陆地图层。
修改后的代码如下:
#@title Province plot import matplotlib.pyplot as plt # 创建绘图轴并设置背景色为海域颜色 fig, ax = plt.subplots(figsize=(10, 10)) ax.set_facecolor('#a0cfff') # 在指定轴上绘制陆地,设置陆地颜色及边界样式 provinces.plot(ax=ax, color='#6b8e23', linewidth=0.5, edgecolor='black') # 设置地图标题 plt.title('Map of Indonesia Provinces') # 显示图形 plt.show()
关键说明:
- 先创建独立的绘图轴
ax,将其背景色设为海域色#a0cfff,这部分就对应地图的海域区域。 - 调用
provinces.plot()时通过ax=ax指定绘图轴,用color参数直接定义陆地填充色#6b8e23,避免参数覆盖问题。 - 无需使用
facecolor参数,color已直接作用于GeoDataFrame中的陆地要素。
内容的提问来源于stack exchange,提问作者Muhammad Ikhwan Perwira
相关产品推荐
相关产品推荐

