截至3月28日,美国累计新冠肺炎确诊病例已经超过12万例,累计死亡病例超两千例。美国政府已宣布17个州和地区为应对新冠肺炎疫情“灾难状态”。美国疾控中心28日还对纽约州等疫情较严重的三州发布旅行建议。
有朋友就问能否介绍下如何使用Python绘制美国疫情地图。
但是PyEcharts并没有美国各州的地图文件,无法绘制美国疫情地图,所以不得不找其他的工具进行绘制。皇天不负有心人,找到了Plotly这个工具。
Plotly是新一代的Python数据可视化开发库,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图。
Plotly可绘制的部分效果图如下
Plotly绘制的地图效果是这样的,因为纽约累计确诊确诊人数远大于其他地区,所以看到就是这个效果了。
首先我们来安装需要的模块:
- # 安装plotly模块,直接安装就是最新的版本,我用的是4.5.4
- pip install plotly
如果安装慢或不成功,可以使用下面的代码换个国内源地址进行安装
- pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple
然后导入需要使用的模块:
- # 导入需要使用的模块
- import plotly.graph_objects as go
- import pandas as pd
然后导入需要数据,数据是这样的,存在Excel表格中:
导入数据,代码如下:
- # 导入数据
- df = pd.read_excel('C:/Python/US/US.xlsx',sheet_name='1')
接下来就可以创建地图并设置相应的参数了,代码如下:
- fig = go.Figure(data=go.Choropleth(
- locations=df['code'], # 设置位置,各州的编号(缩写)
- z = df['conNum'].astype(float), # 设置填充色数据
- locationmode = 'USA-states', # 设置国家名称
- colorscale = 'Reds', # 图例颜色
- colorbar_title = "人数", # 图例标题
- ))
- fig.update_layout(
- title_text = '美国累计确诊人数', # 地图标题
- geo_scope='usa', # 设置地图的范围为美国
- #scope可选有"world","usa","europe","asia","africa","north america","south america"
- )
最后导出地图,代码如下:
- # 将地图导出为html文件
- fig.write_html("C:/Python/US/US.html")