Python疫情可视化分析
总览
- 前言
- 数据来源
- 功能函数
- 读取文件
- 更换列名,便于查看
- 全球疫情趋势
- 筛选出中国的数据
- 利用groupby按照省统计确诊死亡治愈病例的总和
- 确诊人数排名前15的国家
- 这里用pyecharts库画图,绘制的玫瑰图,rosetype
- 中国确诊人数前十的省
- 区域图
- 热力图
- 全球死亡人数地理分布情况
- 全球疫情频率直方图
- 其他图
- 陕西确诊病例饼图
- 陕西省确诊病例数据分布
- 中国治愈病例玫瑰图
- 代码获取
前言
本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析
数据来源
本数据集来源于kaggle竞赛的开源数据集,数据集地址:https://www.kaggle.com/datasets/sudalairajkumar/novel-corona-virus-2019-dataset
本数据集主要涉及到全球疫情统计,包括确诊、治愈、死亡、时间、国家、地区等信息
功能函数
读取文件
df = pd.read_csv(r'C:\Users\Hasee\Desktop/covid_19_data.csv')
df.head()
更换列名,便于查看
cols= ['序号','日期','省/州','国家','最近更新','确诊','死亡','治愈']
df.columns = cols
df.日期 = pd.to_datetime(df.日期)
df
## 利用groupby按照日期统计确诊死亡治愈病例的总和
#合并同一天同国家日期
global_confirm = df.groupby('日期')[['确诊', '死亡', '治愈']].sum()
global_confirm
全球疫情趋势
ax = global_confirm.plot(figsize = (12,10), title = '全球疫情趋势图')
筛选出中国的数据
利用groupby按照日期统计确诊死亡治愈病例的总和
global_china = df[df['国家'] == 'Mainland China'].reset_index()
global_china_confirm = global_china.groupby('日期')[['确诊', '死亡', '治愈']].sum().reset_index()
画图,三条线组合到一个图
利用groupby按照省统计确诊死亡治愈病例的总和
global_china = df[df['国家'] == 'Mainland China'].reset_index()
global_china_province_confirm = global_china.groupby('省/州')[['确诊', '死亡', '治愈']].sum().reset_index()recovercent = 100.*global_china_province_confirm['治愈'] / global_china_province_confirm['治愈'].sum()
labels = ['{0}-{1:1.2f}%-{2}'.format(i,j,k) for i,j,k in zip(list(global_china_province_confirm['省/州']), recovercent, list(global_china_province_confirm['治愈']))]
plt.figure(figsize=(10,10))
plt.pie(global_china_province_confirm['治愈'],radius = 0.3)
确诊人数排名前15的国家
plt.figure(figsize=(16,16))
plt.barh(list(global_country_confirm_rank.国家)[::-1], list(global_country_confirm_rank.确诊)[::-1])
plt.title('确诊人数排名前15的国家')
plt.xlabel('人数(千万)')
plt.ylabel('国家')
这里用pyecharts库画图,绘制的玫瑰图,rosetype
set_global_opts是设置格式
中国确诊人数前十的省
china_confirm = df[df['国家'] == "Mainland China"]
china_latest = china_confirm[china_confirm['日期'] == max(china_confirm['日期'])]words = WordCloud()
words.add('确诊人数', [tuple(dic) for dic in zip(list(china_latest['省/州']),list(china_latest['确诊']))], word_size_range=[20,100])
区域图
china_death = df[df['国家'] == "Mainland China"]
china_death_latest = china_death[china_death['日期'] == max(china_death['日期'])]
china_death_latest = china_death_latest.groupby('省/州')[['确诊', '死亡']].max().reset_index()
geo = Map()geo.add("中国死亡病例分布", [list(z) for z in zip(china_death_prodic,list(china_death_latest['死亡']))], "china")
geo.set_global_opts(title_opts=opts.TitleOpts(title="全国各省死亡病例数据分布"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=[{"min": 1500, "label": '>10000人', "color": "#6F171F"}, {"min": 500, "max": 15000, "label": '500-1000人', "color": "#C92C34"},{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
geo.render_notebook()
热力图
geo = Geo()
geo.add_schema(maptype="china")geo.add("中国死亡病例分布", [list(dic) for dic in zip(china_death_prodic,list(china_death_latest['死亡']))],type_=GeoType.EFFECT_SCATTER)
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="全国各省死亡病例数据分布"))
geo.render_notebook()
全球死亡人数地理分布情况
map = Map()
map.set_global_opts(title_opts=opts.TitleOpts(title="全球死亡人数地理分布情况"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=[{"min": 100001, "label": '>100001人', "color": "#6F171F"}, {"min": 10001, "max": 100000, "label": '10001-100000人', "color": "#C92C34"},{"min": 1001, "max": 10000, "label": '1001-10000人', "color": "#E35B52"},{"min": 101, "max": 10000, "label": '101-10000人', "color": "#F39E86"},{"min": 1, "max": 100, "label": '1-100人', "color": "#FDEBD0"}]))
map.add("全球死亡人数地理分布情况", [list(z) for z in zip(global_death_n,list(global_death['死亡']))], "world")
map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
map.render_notebook()
全球疫情频率直方图
global_confirm.plot.hist(alpha=0.5)
plt.xlabel('人数(千万)')
plt.ylabel('出现频率')
plt.title('全球疫情频率直方图')
其他图
陕西确诊病例饼图
陕西省确诊病例数据分布
中国治愈病例玫瑰图
代码获取
赞赏100,任选12个图,评论留下个人邮箱,收到即回复
Python疫情可视化分析相关推荐
- Python新冠疫情可视化分析系统 计算机专业毕业设计源码08504
摘 要 文中首先对新冠疫情可视化分析的项目需求进行了背景分析,接着介绍了项目的总体设计思路,然后具体阐述了疫情数据库的设计.疫情数据的查询.疫情数据的展示,并分析了核心代码.文中利用MySQL数据库存 ...
- 基于python的可视化分析_Python数据的可视化分析,python
python数据可视化分析 首先载入必要的库 import warnings import numpy as np import pandas as pd import matplotlib.pypl ...
- Python+BI可视化分析2000W数据之后,告诉你这届毕业生有多难
已经到4月份了,很多低年级的学生都在家里享受着"高效率"的网课,乐不思蜀不想开学.不过这个超长假期对于2020届毕业生来说却是几家欢喜几家愁:有的毕业论文还没动笔,有的工作还没着落 ...
- python爬虫beautifulsoup爬当当网_利用python爬虫可视化分析当当网的图书数据!
导语 这周末就分享个小爬虫吧.利用Python爬取并简单地可视化分析当当网的图书数据. 开发工具 Python版本:3.6.4 相关模块: requests模块: bs4模块: wordcloud模块 ...
- 利用python爬虫可视化分析当当网的图书数据
导语 这周末就分享个小爬虫吧.利用Python爬取并简单地可视化分析当当网的图书数据. 开发工具 **Python版本:**3.6.4 相关模块: requests模块: bs4模块: wordclo ...
- 基于python的可视化分析_基于Python 的数据分析与可视化平台研究
基于 Python 的数据分析与可视化平台研究 宋永生 ; 黄蓉美 ; 王军 [期刊名称] <现代信息科技> [年 ( 卷 ), 期] 2019(003)021 [摘要] 数据分析与可视化 ...
- python用excel数据做热力图_7行代码 Python热力图可视化分析缺失数据处理-Python 实用宝典...
Python热力图寻找缺失数据 你有没有遇到一种情况,处理一张很大的csv表格的时候很难找到表格中每一列的缺失数据,或者说处理速度非常慢 ?当然如果你的Excel水平非常高,这个可能不会成为你的问题, ...
- 【毕业设计】大数据疫情可视化分析系统 - python
文章目录 0 前言 1 课题介绍 2 运行效果 3 关键代码 3.1 数据爬虫 3.2 可视化部分 4 最后 0 前言
- 女生不能学理科?python+数据可视化分析15万考生的成绩,刷新了我的认知
昨天是什么日子?推迟了一个月的高考终于来了,作为一个已经考完N年的人,说句实话,我比你们还激动! 因为我知道,它来的太不容易了. 说到高考,就不得不提那个别人口中的江苏卷,作文题的每个字我都认识,但是 ...
最新文章
- winform datagridview控件使用
- Laravel5.2之Filesystem-从Dropbox中下载文件到AWS S3
- 解读腾讯极速高清AR-SR的画质改善机制
- C++ vector类详解
- 从Tom说JSP原理
- CentOS下Redis 2.2.14安装配置详解
- IPFS(DRAFT 3) 中文版白皮书
- 网络安全工程师毕业答辩杂记
- 设计师提高效率必备的10大在线工具
- 程序员如何写简历?程序员写出牛逼简历的5大技巧
- excel组合汇总_Excel汇总20150105
- Unity2D愤怒的小鸟技术点总结 ---- 制作动画特效
- python人文社科研究_人文社科论文写作数据分析利器|SPSS+Stata+Endnote+Python
- CF1155F Delivery Oligopoly
- 1.OCR--文本检测算法FCENet
- 代驾小程序开发有哪些功能
- MyEclipse更换主题皮肤
- php性能优化的几个方法
- Axure RP9中继器的可做用途之一,类似于购物界面的展示
- 程序员离职代码交接_离职程序员交接工作被同事怒怼:每一行代码都必须讲清楚,不然投诉...
热门文章
- 16Python标准系列之random模块
- vue 使用xuex来改变后台接口中英文的字段
- Odoo14免费开源ERP新功能预览
- 【网络】虚拟专用网络工作在哪一层?
- 冒泡数组实现和冒泡数组的改进以及插入法排序
- 做硬件产品经理的困惑
- 基于数据的决策的 5 个步骤
- ​电赛 | 19年全国一等奖,北航学子回忆录(下)
- JAVA学习---从头开始WEEK03
- mysql查询学号得出专业_用SQL的语言,也就是数据库的语言,查询Student表中计算机专业的男学生学号,姓名,专业名,性别...