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

如何用Python将新冠累计病例转换为人口占比并绘制Choropleth地图?

实现新冠病例人口占比的Choropleth地图

完全可以用Python实现这个需求,核心思路是将新冠累计病例数据与各国人口数据合并,计算占比后再可视化,具体步骤如下:

1. 准备人口数据

你需要一个包含国家名称和对应人口的数据集,这里提供一个常用国家的示例数据(如需更完整的数据集,可手动整理或从权威统计机构获取):

# 示例人口数据(可按需补充更多国家)
population_data = {
    "Country": ["United States of America", "China", "India", "Brazil", "United Kingdom", "France", "Germany", "Russia", "Japan", "Italy"],
    "Population": [331002651, 1439323776, 1380004385, 212559417, 67886011, 65273511, 83783942, 145934462, 126476461, 60461826]
}
pop_df = pd.DataFrame(population_data)

2. 合并数据集并计算占比

将WHO新冠数据与人口数据按国家名称匹配,再计算累计病例占人口的百分比:

import pandas as pd
import plotly.express as px

# 加载WHO新冠数据
df = pd.read_csv("https://covid19.who.int/WHO-COVID-19-global-data.csv")

# 合并两份数据(按国家名称匹配)
merged_df = pd.merge(df, pop_df, on="Country", how="left")

# 计算占比,处理缺失值避免报错
merged_df["Cumulative_cases_pct"] = merged_df.apply(
    lambda row: (row["Cumulative_cases"] / row["Population"]) * 100 if pd.notna(row["Population"]) and row["Population"] > 0 else None,
    axis=1
)

3. 修改可视化代码

把颜色映射的字段替换为新的百分比列,同时调整标题和颜色轴标签:

fig = px.choropleth(merged_df, 
                    locations="Country", 
                    color_continuous_scale="Reds",
                    locationmode="country names",
                    color="Cumulative_cases_pct",  # 替换为百分比字段
                    width=1000,
                    height=900,
                    animation_frame="Date_reported",
                    title="全球新冠累计病例占人口比例动态地图",
                    labels={"Cumulative_cases_pct": "病例占人口比例(%)"}  # 设置颜色轴显示标签
                   )

# 保持原有的动画速度设置
fig.layout.updatemenus[0].buttons[0].args[1]['frame']['duration'] = 30
fig.layout.updatemenus[0].buttons[0].args[1]['transition']['duration'] = 5

fig.show()

注意事项

  • 若需覆盖全球所有国家,需确保人口数据中的国家名称与WHO数据完全匹配(部分国家存在名称缩写或不同表述,需提前统一格式)。
  • 对于无人口数据的国家,Plotly会自动将其显示为灰色,也可通过dropna()过滤掉这部分数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:05:25