Python结合pyecharts实现新型冠状病毒实时疫情可视化

小林子
小林子
发布时间:2026-10-12| 1人浏览过
原创

本文介绍如何利用Python抓取实时疫情数据,并通过pyecharts库绘制可视化地图。通过Chrome开发者工具定位JSON接口,解析包含确诊、治愈及死亡人数的数据,最终生成支持省、市级别的交互式疫情分布图,帮助直观掌握各地疫情状况。

近期每日清晨的首要任务,便是查阅新闻应用中的疫情动态,以确认自己及亲友所在城市的具体确诊情况。然而,单纯的文字数字往往难以形成直观认知,因此尝试通过技术手段构建可视化图表来呈现这些数据。

数据来源主要依托各大网站的实时疫情页面。以某特定网站为例,使用requests库获取HTML源码后,发现其中并未直接包含数据。这通常意味着页面由JavaScript动态渲染,且数据需从后台接口获取。此时可打开Chrome浏览器的开发者工具,切换至Network(网络)标签页并刷新页面,逐一检查请求列表,通常能定位到返回JSON格式数据的接口。

需注意,该接口的返回数据往往包裹在JavaScript变量中。可通过正则表达式提取核心JSON字符串,随后利用Python标准库中的json.loads方法将其转换为字典对象,以便后续处理。

 result = requests.get(
    'https://interface.sina.cn/news/wap/fymap2020_data.d.json?1580097300739&&callback=sinajp_1580097300873005379567841634181')
  json_str = re.search("\(+([^)]*)\)+", result.text).group(1)

  html = f"{json_str}"
  table = json.loads(f"{html}")

解析后的数据结构较为清晰,主要包含省级行政区数据及其下属城市的具体数据。

 { 'city': [  {  'conNum': '4',
          'cureNum': '0',
          'deathNum': '0',
          'name': '乌鲁木齐',
          'susNum': '0'},
        {  'conNum': '1',
          'cureNum': '0',
          'deathNum': '0',
          'name': '伊犁州',
          'susNum': '0'}],
  'cureNum': '0',
  'deathNum': '0',
  'name': '新疆',
  'susNum': '0',
  'value': '5'}

若具备英语基础,可推断cureNum代表治愈人数,deathNum代表死亡人数,而value字段通常对应确诊人数。其他字段的具体含义可参照原网站的数据表格进行确认。

在可视化呈现上,地图是最为直观的方式。国内广泛使用的echarts库对国内地图提供了良好的支持。首先需通过pip安装pyecharts库,并额外安装两个依赖包:echarts-china-provinces-pypkg(用于省级地图)以及echarts-china-cities-pypkg(用于市级地图)。

接下来,遍历解析后的JSON数据,将省份名称与对应的确诊数值提取出来,存入data列表中,并将其传递给Map对象进行渲染配置。

 for province in table['data']['list']:
    pp.pprint(province)
    data.append((province['name'], province['value']))

    for city in province['city']:
      pp.pprint(city)
map_p = Map()
map_p.set_global_opts(title_opts=opts.TitleOpts(title="实时疫情图"), visualmap_opts=opts.VisualMapOpts(max_=100))
map_p.add("确诊", data, maptype="china")
map_p.render("ncov.html") # 生成html文件

实现代码相对简洁,关键在于设置max参数以决定颜色映射的上限。渲染效果如图所示。

当确诊人数达到100时,相关省份在地图上会呈现显著的颜色差异,一目了然。有兴趣的用户还可以进一步扩展,制作市级或全球范围的疫情地图。

最后,期盼所有地区都能回归安全的蓝色状态。武汉加油,中国加油!

总结

上述内容介绍了使用Python制作新型冠状病毒实时疫情图的方法,希望能对读者有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。