Python疫情数据可视化分析

目录
  • 前言
  • 功能函数
    • 读取文件
    • 更换列名,便于查看
    • 全球疫情趋势
    • 筛选出中国的数据
    • 利用groupby按照省统计确诊死亡治愈病例的总和
    • 确诊人数排名前15的国家
  • 这里用pyecharts库画图,绘制的玫瑰图,rosetype
    • 中国确诊人数前十的省
    • 区域图
    • 热力图
    • 全球死亡人数地理分布情况
    • 全球疫情频率直方图
  • 其他图
    • 陕西确诊病例饼图
    • 陕西省确诊病例数据分布
    • 中国治愈病例玫瑰图

前言

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

数据来源:

  • 本数据集来源于kaggle竞赛的开源数据集,数据集地址
  • 本数据集主要涉及到全球疫情统计,包括确诊、治愈、死亡、时间、国家、地区等信息

功能函数

读取文件

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('全球疫情频率直方图')

其他图

陕西确诊病例饼图

陕西省确诊病例数据分布

中国治愈病例玫瑰图

到此这篇关于Python疫情数据可视化分析的文章就介绍到这了,更多相关Python可视化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python爬虫爬取疫情数据并可视化展示

    目录 知识点 开发环境 爬虫完整代码 导入模块 分析网站 发送请求 获取数据 解析数据 保存数据 数据可视化 导入模块 读取数据 死亡率与治愈率 各地区确诊人数与死亡人数情况 知识点 爬虫基本流程 json requests 爬虫当中 发送网络请求 pandas 表格处理 / 保存数据 pyecharts 可视化 开发环境 python 3.8 比较稳定版本 解释器发行版 anaconda jupyter notebook 里面写数据分析代码 专业性 pycharm 专业代码编辑器 按照年份与月

  • Python实现疫情地图可视化

    一. json模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. json.loads():将json格式的str转化成python的数据格式: json.loads():将python的数据格式(字典或列表)转化成json格式: # 如何将json数据解析成我们所熟悉的Python数据类型? import json # 将json格式的str转化成python的数据格式:字典 d

  • 用Python可视化新冠疫情数据

    目录 前言 数据获取 数据可视化 python的特色 总结 前言 不知道大伙有没有看到过这一句话:“中国(疫苗研发)非常困难,因为在中国我们没有办法做第三期临床试验,因为没有病人了.”这句话是中国工程院院士钟南山在上海科技大学2021届毕业典礼上提出的.这句话在全网流传,被广大网友称之为“凡尔赛”发言. 今天让我们用数据来看看这句话是不是“凡尔赛”本赛.在开始之前我们先来说说今天要用到的python库吧! 1.数据获取部分 requests lxml json openpyxl 2.数据可视化部

  • Python疫情数据可视化分析

    目录 前言 功能函数 读取文件 更换列名,便于查看 全球疫情趋势 筛选出中国的数据 利用groupby按照省统计确诊死亡治愈病例的总和 确诊人数排名前15的国家 这里用pyecharts库画图,绘制的玫瑰图,rosetype 中国确诊人数前十的省 区域图 热力图 全球死亡人数地理分布情况 全球疫情频率直方图 其他图 陕西确诊病例饼图 陕西省确诊病例数据分布 中国治愈病例玫瑰图 前言 本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析 数

  • Python实现数据可视化案例分析

    目录 1. 问题描述 2. 实验环境 3. 实验步骤及结果 1. 问题描述 对右图进行修改: 请更换图形的风格 请将 x 轴的数据改为-10 到 10 请自行构造一个 y 值的函数 将直方图上的数字,位置改到柱形图的内部垂直居中的位置 对成绩数据 data1402.csv 进行分段统计:每 5 分作为一个分数段,展示出每个分数段的人数直方图. 自行创建出 10 个学生的 3 个学期排名数据,并通过直方图进行对比展示. 线图 把这个图像做一些调整,要求出现 5 个完整的波峰. 调大 cos 波形的

  • python地震数据可视化详解

    本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下 参考源码:seisplot 准备工作: 在windows10下安装python3.7,下载参考源码到本地. 1. demo绘图测试 demo绘图指令 cmd> python seisplot.py --demo 问题1)缺少依赖包 File "D:/Desktop/python可视化/seisplot/seisplot.py", line 16, in <module> import

  • python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意味着概念.方法.参数繁多,让许多新手望而却步. 据我了解,大部分人在对matplotlib接触不深时都是边画图边百度,诸如这类的问题,我想大家都似曾相识:Python如何画散点图,matplotlib怎么将坐标轴标签旋转45度,怎么设置图例字体大小等等.无论针对哪一个问题,往往都有多种解决方法,搜索

  • 详解Python进行数据相关性分析的三种方式

    目录 相关性实现 NumPy 相关性计算 SciPy 相关性计算 Pandas 相关性计算 线性相关实现 线性回归:SciPy 实现 等级相关 排名:SciPy 实现 等级相关性:NumPy 和 SciPy 实现 等级相关性:Pandas 实现 相关性的可视化 带有回归线的 XY 图 相关矩阵的热图 matplotlib 相关矩阵的热图 seaborn 相关性实现 统计和数据科学通常关注数据集的两个或多个变量(或特征)之间的关系.数据集中的每个数据点都是一个观察值,特征是这些观察值的属性或属性.

  • Python seaborn数据可视化绘图(直方图,密度图,散点图)

    目录 前言 一.直方图distplot() 二.密度图 1.单个样本数据分布密度图 2.两个样本数据分布密度图 三.散点图 1.jointplot()综合散点图 2.拆分综合散点图JointGrid() 3.pairplot()矩阵散点图 4.拆分综合散点图JointGrid() 前言 系统自带的数据表格,使用时通过sns.load_dataset('表名称')即可,结果为一个DataFrame. print(sns.get_dataset_names()) #获取所有数据表名称 # ['ans

  • Python pyecharts 数据可视化模块的配置方法

    目录 1. pyecharts 模块介绍 2. pyecharts 模块安装 3. pyecharts 配置选项 3.1 全局配置选项 3.2 系列配置选项 4. 基础折线图的构建 4.1 基本使用流程 5. 基础地图构建 5.1 基本使用流程 5.2 实现国内疫情地图 5.3 实现省级疫情地图 6. 基础柱状图构建 6.1 基本使用流程 6.2 基础时间线柱状图 6.3 实现动态 GDP 柱状图 1. pyecharts 模块介绍 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互

  • Python实现数据可视化看如何监控你的爬虫状态【推荐】

    今天主要是来说一下怎么可视化来监控你的爬虫的状态. 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样.今天我来讲一种可视化的方法. 关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据. 1.成品图 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M.爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已, 如下图. 可以

  • python Matplotlib数据可视化(2):详解三大容器对象与常用设置

    上一篇博客中说到,matplotlib中所有画图元素(artist)分为两类:基本型和容器型.容器型元素包括三种:figure.axes.axis.一次画图的必经流程就是先创建好figure实例,接着由figure去创建一个或者多个axes,然后通过axes实例调用各种方法来添加各种基本型元素,最后通过axes实例本身的各种方法亦或者通过axes获取axis实例实现对各种元素的细节操控. 本篇博客继续上一节的内容,展开介绍三大容器元素创建即通过三大容器可以完成的常用设置. 1 figure 1.

  • 利用Python进行数据可视化的实例代码

    目录 前言 首先搭建环境 实例代码 例子1: 例子2: 例子3: 例子4: 例子5: 例子6: 总结 前言 前面写过一篇用Python制作PPT的博客,感兴趣的可以参考 用Python制作PPT 这篇是关于用Python进行数据可视化的,准备作为一个长贴,随时更新有价值的Python可视化用例,都是网上搜集来的,与君共享,本文所有测试均基于Python3. 首先搭建环境 $pip install pyecharts -U $pip install echarts-themes-pypkg $pi

随机推荐