各国疫苗接种进度(气泡图可视化)

该博客通过可视化展示了全球各国的疫苗接种进度,使用plotly库制作动态气泡图。作者首先排除了全球和大洲的数据,然后对缺失的国家接种数据进行补全,并选取每百人接种量最高的10个国家进行重点分析。可视化结果显示,以色列和阿联酋的接种进度领先,中国和美国尽管接种量大,但由于人口基数大,接种比例相对较低。英国等欧洲国家的接种工作也在稳步进行。
摘要由CSDN通过智能技术生成


全国疫情及疫苗接种进度可视化

如果想了解更多有趣的项目和小玩意,都可以来我这里哦通道

2020年底以来,欧美、印度、中国、俄罗斯等多国得制药公司纷纷推出了针对新冠肺炎的疫苗,这部分要分析了2020年以来全球疫情形势、各类疫苗在全球的地理分布、疫苗在各国的接种进度进行可视化展示,以期给读者提供当前疫情以及未来疫情防控的直观展示。

安装plotly库

因为这部分内容主要是用plotly库进行数据动态展示,所以要先安装plotly库

pip install plotly

除此之外,我们对数据的处理还用了numpypandas库,如果你没有安装的话,可以用以下命令一行安装

pip install plotly numpy pandas
#导入所需库
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go

各国疫苗接种进度

读取数据

#读取数据
vaccinations=pd.read_csv(r'./data/vaccinations.csv')

排除全球及大洲数据

我们需要把一些全球和大洲的数据去掉,因为我们是对国家进行分析,要不然会有重复

#排除全球及大洲数据
vaccinations.index=vaccinations.location
vaccinations=vaccinations.drop(['World','Asia','North America', 'Europe','Africa', 'European Union', 'South America'])
vaccinations.reset_index(drop=True,inplace=True)
vaccinations

在这里插入图片描述
我们可以看看现在我们的数据分布是这样的

发现某些国家数据不全,需按日期进行补全

#发现某些国家数据不全,需按日期进行补全
for i in vaccinations.location.unique():#遍历国家
    for j in vaccinations.date.unique():#遍历日期
        if vaccinations.loc[(vaccinations.location==i)&(vaccinations.date==j)].empty:#如果该日期没有数据,新增一行空数据
            temp=pd.DataFrame({'location':i,'date':j},index=['new'])
            vaccinations=pd.concat([vaccinations,temp])
vaccinations['date_']=pd.to_datetime(vaccinations.date)#创建时间序列
vaccinations=vaccinations.sort_values(by='date_')#按时间排序
vaccinations

在这里插入图片描述
在这里插入图片描述

temp1=pd.DataFrame()
for i in vaccinations.location.unique():#按国家补全数据
    r=vaccinations.loc[vaccinations.location==i]
    r=r.fillna(method='ffill',axis=0)#先按最近一次数据进行补全
    temp1=pd.concat([temp1,r])
temp1=temp1.fillna(0)#若仍有空值,认为是0
temp1

取每百人接种量最高的10个国家

#为了减少可视化的数据量,保留总接种量及每百人接种量最高的10个国家
country1=list(temp1.reset_index(drop=True).groupby('location').total_vaccinations.max().sort_values(ascending=False).head(10).index)
country2=list(temp1.reset_index(drop=True).groupby('location').total_vaccinations_per_hundred.max().sort_values(ascending=False).head(10).index)
country1.extend(country2)
country_list=set(country1)
drop_list=list(set(temp1.location.unique())-country_list)

可视化绘制气泡图

绘制气泡图,横轴为总接种数,纵轴为接种比例,气泡大小为单日接种数

#绘制气泡图
fig=px.scatter(temp1,
                x='total_vaccinations',
                y='total_vaccinations_per_hundred',
                size='daily_vaccinations',
                size_max=50,color='location', 
                animation_frame='date',
                hover_name='location')
fig.update_layout(xaxis={'range':[-1000000,temp1.total_vaccinations.max()*1.2]},
                yaxis={'range':[-10,temp1.total_vaccinations_per_hundred.max()*1.2]})
fig.show()

在这里插入图片描述

通过上图可以发现:

  • 各国的疫苗接种主要开始于20年12月底
  • 以色列、阿联酋等国开始接种后,虽然单日接种量不大,但相对其较少的总人口,很快就在接种进度上取得了领先,截止2021年2月16日,分别达到78%、52%
  • 从单日接种人数上,中、美两国相对最大,但由于两国热口基数较大,接种进度均比较落后。而中国由于前期(主要是12月底)接种数量少、人口基数大的原因,导致无论是总接种量,还是接种进度,都落后于美国
  • 以英国为代表的欧洲各国,虽然人口基数也不小,但归功于其对于疫苗的大力推动,其接种进度正在稳步推进中
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风信子的猫Redamancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值