You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的Choropleth地图上为非洲各国添加标注文本/数值

解决方法

要在Plotly的非洲 choropleth 地图上添加文本/数值标注,你可以通过**添加散点地理图层(Scattergeo)**来实现,具体步骤如下:

1. 修正数据错误(可选但重要)

你的CSV数据里国家和首都对应错误,正确的对应关系应该是:

country   capital   longitude   latitude
Nigeria   Abuja       7.53        8.93
Mali      Bamako      -8          12.63

2. 修改代码添加标注

在原有的choropleth代码基础上,添加add_trace插入文本标注层,指定标注的位置(经纬度)和显示内容:

import geopandas as gpd
import plotly.express as px
import pandas as pd

# 读取数据(替换为你的文件路径)
df = pd.read_csv("your_file.csv")

# 修正数据错误(如果需要)
df.loc[df['country'] == 'Nigeria', ['capital', 'longitude', 'latitude']] = ['Abuja', 7.53, 8.93]
df.loc[df['country'] == 'Mali', ['capital', 'longitude', 'latitude']] = ['Bamako', -8, 12.63]

# 绘制基础着色地图
fig = px.choropleth(df, 
                    locationmode='country names', 
                    locations='country',
                    scope='africa', 
                    color='country')

# 添加文本标注:可替换为首都、数值等内容
fig.add_trace(px.scatter_geo(df,
                             lon='longitude',
                             lat='latitude',
                             text='country',  # 这里可替换为'capital'或自定义数值字段
                             mode='text',
                             textfont=dict(size=12, color='black')).data[0])

# 优化布局(可选)
fig.update_layout(showlegend=False)  # 不需要颜色图例可关闭

fig.show()

关键说明

  • px.scatter_geo的mode='text'会让图层仅显示文本,不生成散点标记
  • text参数可自由指定显示内容:比如text='capital'显示首都名称,text=df['population']显示统计数值
  • 通过textfont可以调整文本的大小、颜色,避免与地图底色冲突
  • 标注位置使用国家中心经纬度即可,你CSV中的数据刚好适配这个需求

内容的提问来源于stack exchange,提问作者Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:50:39