Python疫情数据可视化分析

作者:谢谢大家我爱小谢 时间:2022-05-22 05:09:15 

前言

本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析

数据来源:

  • 本数据集来源于kaggle竞赛的开源数据集,数据集地址

  • 本数据集主要涉及到全球疫情统计,包括确诊、治愈、死亡、时间、国家、地区等信息

功能函数

读取文件

df = pd.read_csv(r'C:\Users\Hasee\Desktop/covid_19_data.csv')
df.head()

Python疫情数据可视化分析

更换列名,便于查看

cols= ['序号','日期','省/州','国家','最近更新','确诊','死亡','治愈']
df.columns = cols
df.日期 = pd.to_datetime(df.日期)
df

Python疫情数据可视化分析

## 利用groupby按照日期统计确诊死亡治愈病例的总和

#合并同一天同国家日期
global_confirm = df.groupby('日期')[['确诊', '死亡', '治愈']].sum()
global_confirm

Python疫情数据可视化分析

全球疫情趋势

ax = global_confirm.plot(figsize = (12,10), title = '全球疫情趋势图')

Python疫情数据可视化分析

筛选出中国的数据

利用groupby按照日期统计确诊死亡治愈病例的总和

global_china = df[df['国家'] == 'Mainland China'].reset_index()
global_china_confirm  =  global_china.groupby('日期')[['确诊', '死亡', '治愈']].sum().reset_index()

画图,三条线组合到一个图

Python疫情数据可视化分析

利用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)

Python疫情数据可视化分析

确诊人数排名前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('国家')

Python疫情数据可视化分析

这里用pyecharts库画图,绘制的玫瑰图,rosetype

set_global_opts是设置格式:

Python疫情数据可视化分析

中国确诊人数前十的省

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])

Python疫情数据可视化分析

区域图

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()

Python疫情数据可视化分析

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()

Python疫情数据可视化分析

热力图

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()

Python疫情数据可视化分析

全球死亡人数地理分布情况

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()

Python疫情数据可视化分析

全球疫情频率直方图

global_confirm.plot.hist(alpha=0.5)
plt.xlabel('人数(千万)')
plt.ylabel('出现频率')
plt.title('全球疫情频率直方图')

Python疫情数据可视化分析

其他图

陕西确诊病例饼图

Python疫情数据可视化分析

陕西省确诊病例数据分布

Python疫情数据可视化分析

中国治愈病例玫瑰图

Python疫情数据可视化分析

来源:https://blog.csdn.net/Dummy_/article/details/125672826

标签:Python,疫情,数据,可视化,分析
0
投稿

猜你喜欢

  • 利用aspjpeg组件自动生成产品缩略图asp源代码

    2007-08-10 10:14:00
  • 如何在 IE 中使用 HTML5 元素

    2009-06-14 19:44:00
  • js页面跳转常用的几种方式

    2023-08-07 08:30:27
  • asp连接mysql的问题(端口)

    2009-08-21 13:23:00
  • Python报错SyntaxError:unexpected EOF while parsing的解决办法

    2023-10-01 10:29:54
  • Python爬取商家联系电话以及各种数据的方法

    2023-07-24 18:39:38
  • Oracle数据库系统紧急故障处理方法

    2010-07-26 12:57:00
  • golang语言实现的文件上传与文件下载功能示例

    2023-06-19 00:05:31
  • python基本语法练习实例

    2021-02-25 06:50:07
  • XSL学习教程:运算符和函数

    2008-01-22 18:24:00
  • 分享PHP header函数使用教程

    2023-09-04 12:07:14
  • sql 查询记录数结果集某个区间内记录

    2023-07-09 08:25:01
  • 用Python+OpenCV对比图像质量的几种方法

    2022-06-28 10:57:59
  • 107条javascript(js)常用小技巧

    2007-10-30 12:40:00
  • JavaScript中的私有成员 Javascript教程

    2008-12-02 17:57:00
  • Python搜索引擎实现原理和方法

    2023-06-26 05:35:32
  • php中实现记住密码自动登录的代码

    2023-11-14 18:36:14
  • 大家一起来折磨浏览器吧!(好玩的东东)

    2010-02-07 12:40:00
  • 我对SQL SERVER 存储过程见解

    2009-10-31 18:51:00
  • xml文件调用css

    2008-09-05 17:12:00
  • asp之家 网络编程 m.aspxhome.com