本文主要是介绍西柚实验:用geoplotlib绘制美国某天新冠疫情可视化的等值线图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.问题描述
新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称“新冠肺炎”,世界卫生组织命名为“2019冠状病毒病”,是指2019新型冠状病毒感染导致的肺炎。目前,美国已经成为确诊人数最多的国家,成为全球疫情风暴的中心。在本次实验中,请利用Geoplotlib绘制2021年12月某日美国疫情各州数据的等值线图,包括累计确诊人数、治愈率和死亡率。
2.数据集描述
COVID-19 Data.xlsx数据集:来自于百度新型冠状病毒肺炎疫情实时大数据报告,包括美国51个州(含华盛顿哥伦比亚特区)在2021年12月某日统计的累计确诊人数、治愈人数和死亡人数。
National_Obesity_By_State.geojson:美国各州肥胖率情况,该文件无需改动可直接绘制出美国各州肥胖率等值线图
3.思路:移花接木法
将National_Obesity_By_State.geojson文件载入后,分别把肥胖率换成COVID-19 Data.xlsx文件中的累计确诊人数、治愈人数和死亡人数,即可绘制某日美国疫情各州数据的等值线图
4.代码
import geoplotlib
import pandas as pd
import json
import numpy as np
from geoplotlib.utils import BoundingBox
from geoplotlib.colors import ColorMap#载入新冠数据
covid = pd.read_excel('COVID-19 Data.xlsx')
covid.head()#(1)各州累计确诊人数
#将Obesity的数据更换为各州累计确诊数量
with open('National_Obesity_By_State.geojson') as data:dataset = json.load(data)for i in range(51):state = dataset.get('features')[i]for j in range(51):b = covid['英文州名'][j]if b == state['properties']['NAME']:dataset['features'][i]['properties']['Obesity'] = covid['累计确诊'][j]#设置颜色
cmap = ColorMap('Reds', alpha=255, levels=40)
def get_color(properties):return cmap.to_color(properties['Obesity'], maxvalue=6000000, scale='lin')#美国累计确诊等值线图 颜色越深,确诊人数越多
geoplotlib.geojson(dataset, fill=True, color=get_color)
geoplotlib.geojson(dataset, fill=False, color=[0,0,0,255])#分割线为黑色
geoplotlib.set_bbox(BoundingBox.USA)
geoplotlib.show()#(2)各州治愈率
#将Obesity的数据更换为各州治愈人数
with open('National_Obesity_By_State.geojson') as data:dataset = json.load(data)for i in range(51):state = dataset.get('features')[i]for j in range(51):b = covid['英文州名'][j]if b == state['properties']['NAME']:dataset['features'][i]['properties']['Obesity'] = covid['治愈'][j]/covid['累计确诊'][j]#设置颜色
cmap = ColorMap('Greens', alpha=255, levels=40)
def get_color(properties):return cmap.to_color(properties['Obesity'], maxvalue=1, scale='lin')#美国治愈率等值线图 颜色越深治愈率越高
geoplotlib.geojson(dataset, fill=True, color=get_color)
geoplotlib.geojson(dataset, fill=False, color=[255,255,255,255])#分割线为白色
geoplotlib.set_bbox(BoundingBox.USA)
geoplotlib.show()#(3)各州死亡率
#将Obesity的数据更换为各州死亡数量
with open('National_Obesity_By_State.geojson') as data:dataset = json.load(data)for i in range(51):state = dataset.get('features')[i]for j in range(51):b = covid['英文州名'][j]if b == state['properties']['NAME']:dataset['features'][i]['properties']['Obesity'] = covid['死亡'][j]/covid['累计确诊'][j]#设置颜色
cmap = ColorMap('Reds', alpha=255, levels=10)
def get_color(properties):return cmap.to_color(properties['Obesity'], maxvalue=0.5, scale='lin')#美国死亡率等值线图 颜色越深死亡率越高
geoplotlib.geojson(dataset, fill=True, color=get_color)
geoplotlib.geojson(dataset, fill=False, color=[0,0,0,255])#分割线为黑色
geoplotlib.set_bbox(BoundingBox.USA)
geoplotlib.show()
5.等值线图
(1)各州累计确诊人数
(2)各州治愈率
(3)各州死亡率
这篇关于西柚实验:用geoplotlib绘制美国某天新冠疫情可视化的等值线图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!