全球疫情及疫苗接种进度可视化之四--各国疫苗接种进度

  • 安装plotly库
  • 各国疫苗接种进度
    • 读取数据
    • 排除全球及大洲数据
    • 发现某些国家数据不全,需按日期进行补全
    • 取每百人接种量最高的10个国家
  • 可视化绘制气泡图

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

  • 全球疫情及疫苗接种进度可视化之一–全球疫情形势动态地图展示
  • 全球疫情及疫苗接种进度可视化之二–新冠疫情形势气泡图
  • 全球疫情及疫苗接种进度可视化三–疫苗研发情况
  • 全球疫情及疫苗接种进度可视化之四–各国疫苗接种进度

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

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. 【2020东京奥运会】奥运榜单以及各国参赛运动员数据可视化~

    项目 本文中的代码是基于notebook写的,可以访问https://www.heywhale.com/mw/project/61015e73aca24600179ec778获取完整notebook. ...

  2. 全球疫情形势动态地图展示(超帅超好玩的python动图)

    全球疫情及疫苗接种进度可视化之一--全球疫情形势动态地图展示 安装plotly库 全球疫情形势 定义工具函数 抽取数据 绘制动态图表 重抽样 数据抽取.整理与可视化展示 抽取原始数据 按周重抽样 确诊 ...

  3. Python + Excel | 可视化疫苗接种随时间变化情况

    一.简介 题目来源于帮助学妹做的大作业(貌似文科好一些也学Python?) 有关信息取自自国家卫生健康委员会官方网站公开的数据,真实可靠.数据仅用于学习之用! 二.采集数据 思路:selenium模拟 ...

  4. celery 可视化_在Flask中使用Celery进行多任务分布执行

    关键字:Flask, Redis, RabbitMQ, Celery, Broker, Backend 前言 在后端服务器有时候需要处理耗时较长的任务,例如发送电子邮件,在处理这些任务时,这个线程就处 ...

  5. python输出进度条 tqdm_python-tqdm进度条

    Tqdm 进度条可视化模块 2018-12-04 14:34:25 使用python Tqdm进度条库让你的python进度可视化 Tqdm在阿拉伯语表示进步,在西班牙语中表示我非常爱你.是一个快速, ...

  6. 10W人都想知道的答案!可视化黑科技,这4个数据工具谁最厉害的?

    在搜索商业智能(BI)工具时,可能每个BI供应商都将其产品称为唯一的"最佳"解决方案进行宣传,晕乎转向.笔者身边有很多在数据中心工作的朋友,也有各种IT信息部的大佬,也见惯了各家上 ...

  7. 可视化|东京奥运会可视化(二)

    文章目录 3.2 运动员可视化 3.2.1 数量可视化 1. 按国家奥委会聚合矩形树图 2. 按赛事类型聚合矩形树图 3.2.2 地理可视化 1. 各国运动员分布地图 3.2.3 比例可视化 1. 各 ...

  8. 可视化项目管理只需一个甘特图

    什么是数据可视化?数据可视化是一个以图像或者图形来展示数据的方法,它有助于人们可视化处理那些困难的概念,以及确认那些仍未被发掘的模式. 可视化能将数据以更加直观的方式展现出来项目的情况,使数据更加客观 ...

  9. vue获取上传进度_文件上传与读取实时进度展示-demo(Vue)

    监听进程的方法onprogress 1 )文件读取的progress事件属于FileReader对象. 2 )下载的progress事件属于XMLHttpRequest对象. 3 )上传的progre ...

最新文章

  1. 转:http与https
  2. Cocos2d-x 截屏功能集成
  3. XStream生成的XML中带class属性,去掉class属性
  4. (转)在Windows上安装GPU版Tensorflow
  5. SQLSERVER字符串截取------STUFF
  6. python将csv装入mysql_python 从csv读数据到mysql的实例
  7. java8(1)--- lambda
  8. Git学习(二)远程仓库建立与克隆
  9. 石油化工设备维护检修规程_【干货】罗茨鼓风机维护检修规程
  10. SpringBoot项目配置明文密码泄露问题处理
  11. bench_ios框架的设计思考,基础库、runtime和组件化
  12. 用户流失生命周期如何最大化延缓或延长(包含引流-促活-问卷调研-流失召回话术)
  13. 【USACO】山峰暸望
  14. java中switch的用法和逻辑运算符
  15. 常用 XSS Payload
  16. JSR 354为Java引入金钱与货币的完美支持
  17. 盘点 11 月火火火火的 GitHub 项目
  18. D/A转换器(DAC)
  19. JavaWeb基础知识总结
  20. 深度优先搜索是什么?

热门文章

  1. ssh隧道-能ssh就能http和tcp,通过ssh就能访问内网web页面和数据库
  2. pycharm创建虚拟环境后突然出现invalid SDK标识
  3. 教你在M1芯片的imac一体机上安装PS2021 附教程和方法适用于所有Mac
  4. 超级强大的淘宝开源平台(taobao-code)
  5. Vue实现web端仿网易云音乐 完成大部分功能
  6. html页面调用微信扫一扫功能,微信JSSDK调用微信扫一扫功能的方法
  7. lv_canvas 画布
  8. 10月更新!又一波新功能上线,升级后的EasyOps®简直神了!
  9. 基于Simulink的步进电机仿真实现(文末资源)
  10. 网络攻防——Goby+AWVS漏洞扫描