绘制简单的美国疫情地图(plotlty+request)

时间:2020-9-6 作者:admin

首先确定一下项目流程,数据采集→数据存储→数据分析→数据挖掘→数据可视化,这里我用的是python对项目进行可视化处理,python中的plotly图形库可以在线生成交互式的高质量的图形,它可以制作基本图表统计图表科学图表财务图表地图3维图表。关于这个库的详细介绍和用法可以查看相关官方文档:https://plotly.com/python/

首先美国疫情的确诊数据从哪里获取呢,网上有很多数据来源,但大部分都需要自己去获得,所以这里我写了一个程序获取这个网页的确诊人数的病例数据:https://www.guruin.cn/guides/covid19,这个网站每隔15分钟显示最新的美国疫情数据,具有实时性,而且比较全面。

'''美国疫情统计'''
from lxml import etree
import requests
import pandas as pd
url='https://www.guruin.cn/guides/covid19'
ua='Opera/9.99 (Windows NT 5.1; U; zh-CN) Presto/9.9.9'
req=requests.get(url,headers={
    'User-agent':ua
})
content=req.text
html=etree.HTML(content)
place=html.xpath("//*[@data-bury-bottom='0']/div[1]/div[1]/text()")
definte=html.xpath("//*[@data-bury-bottom='0']/div[1]/div[2]/@data-total-positive")
death=html.xpath("//*[@data-bury-bottom='0']/div[1]/div[3]/@data-total-death")
rate=html.xpath("//*[@data-bury-bottom='0']/div[1]/div[4]/@data-detection-rate")

dataframe=pd.DataFrame({"州(名)":place,"确诊":definte,"死亡":death,"确诊率(%)":rate})
dataframe.to_excel("america.xlsx",index=False)

得到的部分表格展示如下:

仅仅获得这些数据还不够,我们还需要知道每个州的简写码,这个可以百度查到,于是乎我就在表格后加上code一列的数据,那么,接下来有了这些数据后,我们就可以将其映射到地图上了:

import plotly.graph_objects as go
import pandas as pd

df = pd.read_excel('D:/pycharm_project/图表/america(8月).xlsx') #导入数据表格
#绘图
fig = go.Figure(data = go.Choropleth(
    locations=df['code'],#获取各州编号,设置位置
    z=df['definte'].astype(float),#设置填充色数据
    locationmode='USA-states',#绘制的地图地区
    colorscale='Reds',#设置基础变化颜色
    colorbar_title="确诊人数",
    hovertext=df['state'],#显示州名
))
#将数据渲染到地图上显示出地图
fig.update_layout(
    geo_scope = 'usa'#选定美国地图样式
 #scope可选有"world","usa","europe","asia","africa","north america","south america" 
)
#保存到网页
fig.write_html('index.html')

最后呈现的地图就是下面这样啦:

同时,plotly和R的绘制地图的能力都挺不错的,可以查看以下这个文章:

Kaggle | 使用Python和R绘制数据地图的十七个经典案例(附资源)

本文到此结束,后续还在学习。

 

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。