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

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

本文介绍如何利用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 相关产品和应用

全部下载

专题列表