用 Python可视化神器 Plotly 动态演示全球疫情变化趋势

Python-Plotly实现数据可视化的五种动图形式 数据可以帮助我们描述这个世界、阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球。而很多时候,一张漂亮的可视化图表就足以胜过千言万语本文将介绍 5 种基于 Plotly 的可视化方法,你会发现,原来可视化不仅可用直方图和箱形图,还能做得如此动态好看甚至可交互。那么,Plotly 有哪些好处?Plotly 的整合能力很强:可与 Jupyter Notebook 一起使用,可嵌入网站,并且完整集成了 Dash——一种用于构建仪表盘和分析应用的出色工具。 阅读详情

作者:Lemonbit

出品:Python数据之道

用 Python可视化神器 Plotly 

动态演示全球疫情变化趋势

各位同学早上好,我是 Lemonbit 。

近期对疫情数据进行可视化的内容比较多,今天我来用 Python 可视化申请 Plotly 对国外的疫情发展情况进行可视化,以项目实战的形式,在分析和了解国外疫情变化趋势的同时,加深大家对 Plotly 的学习应用。

在开始之前,我们先来看看最终制作的部分效果图,如果你觉得有兴趣,不妨继续往下看。

数据来源

国内的疫情,目前已逐步受到控制,各项指标已开始明显好转,但国外的情况,看起来不是太乐观,已有的作业也没有抄好,所以,本次我们主要来可视化分析国外疫情的发展情况。

疫情的数据来源于开源项目 Akshare,由于使用该项目获取数据时,有时不太稳定,可能会遇到连接失败的情况,所以,这里我提供了保存好的数据供大家使用。

准备工作

照例,还是先介绍下我运行的环境

  • Mac 系统

  • Anaconda(Python 3.7)

  • Jupyter Notebook

本次使用到的 Python 库包括 akshare, pandas, plotly 等,导入如下:

import akshare as ak
import pandas as pd
import plotly
from plotly.offline import iplot, init_notebook_mode
import plotly.express as px
from datetime import datetime
init_notebook_mode()

接着,我们读取已获得的数据,已保存的数据是截至3月7日的。

# 从 akshare 获取数据
# df_all_history = ak.epidemic_history()
# 从csv文件获取数据
df_all_history = pd.read_csv('epidemic_all_20200307.csv',index_col=0)
df_all_history

从上面获取的数据,有些数据格式需要加以调整,对于日期,我们这里会组织两列数据,一列是时间格式的日期( ['date']),一列是字符串格式的日期 ( ['dates'])。这样设置的原因,是因为我们后续分别需要用到这两种格式的日期。

df_all = df_all_history
# 将字符串格式的日期 另保存为一列
df_all['dates'] = df_all_history['date']
# 将字符串格式的日期转换为 日期格式
df_all['date'] = pd.to_datetime(df_all['date'])

获取国外的疫情数据

上面的数据,是全球的数据,我们可以把其中属于中国的剔除,就可以得到国外的数据了。

# 国外,按国家统计
df_oversea = df_all.query("country!='中国'")
df_oversea.fillna(value="", inplace=True)
df_oversea

先来用 plotly express 看下国外疫情分国家的整体走势。

fig_oversea = px.line(df_oversea, x='dates', y='confirmed',
                      line_group='country',
                      color='country',
                      color_discrete_sequence=px.colors.qualitative.D3,
                      hover_name='country',
)
fig_oversea.show()

从上图可以看出,国外的疫情发展情况,大部分国家从2月10日期,发展趋势较为明显,因此,后面我们重点分析这段时间之后的情况。

# 现有数据演示从 2020年2月10日开始
df_oversea_recent = df_oversea.set_index('date')
df_oversea_recent = df_oversea_recent['2020-02-10':]
df_oversea_recent

由于部分国家的数据不是从2020年2月10日开始记录的,所以要补充数据。我们可以手动新建一个 excel数据表,将补充日期的数值填充为 0 。

我这里主要补充的是伊朗的数据,因为伊朗实在是发展太快了,必须纳入分析的范围内。其他国家,如果有需要补充的,后续可以继续完善。

# 由于部分国家,数据不是从2020年2月10日开始的,所以要补充数据,数值为 0
# 数据在 excel 表格中进行补充,这里进行读取
df_oversea_buchong = pd.read_excel('epidemic_buchong.xlsx')
df_oversea_buchong['dates'] = df_oversea_buchong['date'].apply(lambda x:x.strftime('%Y-%m-%d'))
df_oversea_buchong.set_index('date', inplace=True)
df_oversea_buchong.fillna(value="", inplace=True)
print(df_oversea_buchong.info())
df_oversea_buchong

将需要补充的数据弄好后,我们可以合并上面这两部分数据,一起进行分析。

# 合并补充数据
df_oversea_recent_new = df_oversea_recent.append(df_oversea_buchong)
df_oversea_recent_new.sort_index(inplace=True)
df_oversea_recent_new

得到合并的数据后,首先,我们用气泡图来对变化情况进行可视化,这里用的是 plotly express 的散点图。

plotly express 现在已经合并到 plotly 中,个人觉得跟 plotly 原生内容的协同性相对 cufflinks 要好用点。

# -*- coding: utf-8 -*-
"""
@Author: Lemonbit
@出品:Python数据之道
@Homepage: liyangbit.com
"""
fig_oversea_recent = px.scatter(df_oversea_recent_new, x='dead', y='confirmed',
                                size='confirmed', text='country', color='country',
                                color_discrete_sequence=px.colors.qualitative.Light24,
                                animation_frame='dates',animation_group='country',
                                hover_name='country',
                                range_x=[-10,260],
                                range_y=[0,8000],
                                size_max=50,
                                template='plotly_white',
)
fig_oversea_recent.show()

从上面这个动态图可以清晰的看出,当前,在海外的国家中,韩国、伊朗、意大利三个国家最为严重。这三个国家中,就增长趋势而言,伊朗和意大利又比韩国要更明显,目前韩国的增长有所放缓,而伊朗和意大利还处于快速增长的过程中,后续情况不容乐观。

此外,在这个图中,另外还有几个国家值得关注,日本,除去钻石号之外,从数据来看,本土的增长目前还算是在稍微较好的范围内。反倒是,德国、法国、西班牙,个人觉得已成逐步壮大之势,不得不防。

而且,由于整个欧盟国家之间,人员是自由流通的,现在看来,整个欧盟很可能会成为疫情的重灾区,其影响巨大。

上图左下角的这些国家的走势,我们可以拉近来看,走势如下,这样,对于 德国、法国、西班牙就会看的更明显了。

这里,还有一个国家,就是美国,虽然从数据以及增长情况来看,好像美国还好,但恐怕实际情况,要糟糕很多。

上面是以气泡图的方式来演示变化过程,我们也可以以柱状图的形式来演示,效果如下:

关于上面的效果图,各位可以自行研究下,欢迎交流。

需要说明的是,本文代码是在 Jupyter Notebook 中运行的, 如果是在 PyCharm 等 IDE 中运行,需要稍微修改下代码。

最后,再次感谢开源项目 Akshare 提供了数据接口。

为方便大家进行操作,Lemonbit 给大家提供了数据文件,可以在公众号「Python数据之道」后台回复数字 「691」进行获取。

-------------------End-------------------

 公众号后台回复「微信群」,将邀请加入读者交流群。


“分享”和“在看”是更好的支持!

R语言构建因子驱动型资产配置系统 资产配置是投资决策的核心环节,其本质在于科学权衡风险与收益的长期关系,而非预测短期股价波动。现代投资组合理论(MPT)和多因子模型(如Fama-French五因子)为这一过程提供了可验证的原理基础;通过因子暴露分析、多目标优化与帕累托前沿求解,能显著提升组合鲁棒性与决策透明度。在技术实现层面,R语言凭借quantmod、PerformanceAnalytics和PortfolioAnalytics等成熟生态,天然适配金融数据清洗、因子标准化与行业中性化、滚动回测及可视化归因等关键任务,尤其适合需要可复现、可 阅读详情

相关推荐

事件相机数据处理实战:从原始事件流到视觉表征的三种核心方法

本文深入探讨了事件相机数据处理的核心环节,即如何将异步、稀疏的原始事件流转换为深度学习模型可处理的视觉表征。文章重点解析了三种核心方法:逐通道累积、体素网格双线性插值和对称累积事件表示,详细阐述了其原理、代码实现、可视化效果及各自的适用场景,为事件相机在目标识别、光流估计等视觉任务中的高效应用提供了实战指南。

read5的博客 439

Python动态可视化Plotly

Python动态可视化Plotly

weixin_39559994的博客 1048

实测有效防止colab自动断开连接

实测有效防止colab自动断开连接

Thebest_jack的博客 1万+

python的plot如何实时更新_python plotly 使用教程

1、plotly介绍lotly的Python图形库使互动的出版质量图表成为在线。 如何制作线图,散点图,面积图,条形图,误差线,箱形图,直方图,热图,子图,多轴,极坐标图和气泡图的示例。推荐最好使用jupyter notebook,使用pycharm的话不是很方便。2、安装pip install plotly2、使用1)在线使用在setting里找到用户名和api keyimage.png##在线...

weixin_39770165的博客 1720

EDA与机器学习融合:智能优化芯片设计流程的工程实践

机器学习作为数据驱动的核心技术,通过从历史数据中学习复杂模式,实现对系统行为的预测与优化。其原理在于构建模型,将输入特征映射到目标变量,从而揭示数据背后的内在规律。在工程领域,这项技术的核心价值在于能够将专家经验转化为可量化、可复用的智能模型,显著提升自动化水平与决策效率。电子设计自动化(EDA)是芯片设计的关键支撑,传统流程高度依赖人工试错,面临参数空间巨大、优化周期长等挑战。将机器学习应用于EDA,能够构建预测模型来预估设计性能(PPA),或通过代理模型加速设计空间探索,实现智能化的设计辅助与优化。本文

weixin_30411239的博客 684

21、博弈中的对抗搜索算法解析

本文深入解析了博弈中的对抗搜索算法,涵盖极小极大算法、阿尔法-贝塔剪枝、移动排序与换位表等核心技术。文章分析了算法的数学基础与实现机制,探讨了其在国际象棋、围棋等复杂游戏中的应用,并扩展至多人游戏中的联盟与合作行为。通过对比不同类型策略的优劣,展示了对抗搜索在实际博弈系统中的演进方向与优化路径,为人工智能决策提供了理论支持与实践指导。

rust6ferris的博客 129

Python数据可视化教程:基于Plotly的动态可视化绘图

1. plotly 介绍 Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图, 下面我们以jupyter notebook为开发工具数据分析。Matplotlib存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化中的发展。为了解决这个问题,新型的动态可视化开源模块Plotly应运而生...

艾文 7万+

逻辑电平(TTL/CMOS/LVDS/LVPECL/CML)

逻辑电平介绍 TTL------晶体管-晶体管逻辑门(Transistor-Transistor Logic gate) TTL采用5V电源

sinat_15677011的博客 2万+

第二章 【数据分析师---数据可视化3】 Plotly绘图进阶篇(地图和动态图的绘制)

数据分析可视化---Plotly进阶篇第一节 地图的绘制1.使用choropleth绘制地图信息软件安装2.使用geojson功能绘制地理区域3.使用choroplethmapbox绘制漂亮的地图 第一节 地图的绘制 1.使用choropleth绘制地图信息 软件安装 安装组件 !pip install GDAL-3.1.4-cp37-cp37m-win_amd64.whl Shapely-1.7.1-cp37-cp37m-win_amd64.whl Fiona-1.8.18-cp37-cp37m-win_

xiaomei920528的博客 1672

WPF数据绑定Binding对数据的转换与效验(四)

Binding的作用就是架在Source与Target之间的桥梁,数据可以在这座桥梁的帮助下来流通。就像现实世界中的桥梁会设置一些关卡进行安检一样,Binding这座桥上也可以设置关卡对数据的有效性进行检验,不仅如此,当Binding的两端要求使用不同的数据类型时,我们还可以为数据设置转换器。Binding用于数据有效性检验的关卡是它的ValidationRules属性,用于数据类型转换的关卡是它的Converter属性。

qq_30725967的博客 1630

TensorFlow2深度学习实战(十四):目标检测算法 YOLOv4 解析

最易上手的【计算机视觉】小白教程!

不积跬步,无以至千里! 7636

使用 Python可视化神器 Plotly 动态演示全球疫情变化趋势

数据来源 疫情的数据来源于开源项目 Akshare。 准备工作 运行环境: Windows 10系统 Anaconda(Python 3.7) Jupyter Notebook 本次使用到的Python库: akshare, pandas, plotly 数据导入 import akshare as ak import pandas as pd import plotly from plotl...

YINUXY'S BLOG 3018

【调优】OpenClaw从零开始高阶调优之skill篇

本文详细解析了OpenClaw技能系统的核心机制。首先介绍了技能的分层加载逻辑,按照优先级从高到低依次为:工作区专属技能、全局共享技能、出厂自带技能和自定义路径技能。通过流程图展示了从扫描到注册的完整加载流程,并解释了同名技能覆盖规则。随后深入剖析了SKILL.md文件结构,包含YAML元数据定义技能属性和Markdown正文说明使用方法,以公众号写作技能为例展示了具体配置。文章还提供了技能优先级切换的实用技巧,帮助用户灵活管理不同版本的技能。

海兰 239

用 Python 可视化神器 Plotly 动态演示全球疫情变化趋势

“ 阅读本文大概需要 9 分钟。 ”大家好,今天转载的这一篇是借助 Plotly 工具来演示全球疫情变化趋势,同时该技能在日常的报表制作中也十分实用。...

静觅 719

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用 Python可视化神器 Plotly 动态演示全球疫情变化趋势!

用 Python可视化神器 Plotly 动态演示全球疫情变化趋势 各位同学早上好,我是 Lemonbit 。 近期对疫情数据进行可视化的内容比较多,今天我来用 Python 可视化申请 Plotly 对国外的疫情发展情况进行可视化,以项目实战的形式,在分析和了解国外疫情变化趋势的同时,加深大家对 Plotly 的学习应用。 在开始之前,我们先来看看最终制作的部分效果图,如果你觉得有兴趣...

爬遍所有网站 645

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

用 Python 动态曲线图来对全球疫情进行演示

作者:Lemon出品:Python数据之道用 Python 动态曲线图来对全球疫情进行演示各位同学好,我是 Lemon 。最近一段时间,我写了几篇用 P...

Python数据之道 7246

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

用 Plotly 动态柱状图来演示全球疫情变化趋势 | 付费阅读文章处女作

用 Plotly 动态柱状图来演示全球疫情变化趋势各位同学早上好,我是 Lemonbit 。终于收到付费阅读的邀请了,今天发点技术类的干货,这篇文章后面需要付费阅读,收费就象征性的吧,看...

Python数据之道 2555

用可视化神器 Plotly 动态演示全球疫情变化趋势

点击上方“编程派”,选择设为“设为星标”优质文章,第一时间送达!作者:Lemonbit出品:Python数据之道近期对疫情数据进行可视化的内容比较多,今...

codingpy的博客 787

超火动态排序疫情变化图,这次我们用 Plotly来绘制

超火动态排序疫情变化图,这次我们用 Plotly来绘制各位同学早上好,我是 Lemonbit 。国内的疫情基本进入扫尾阶段了,但国外疫情还处于爆发的高峰...

Python数据之道 4297

升级版,用Python来进行多条曲线动态演示全球疫情变化

作者:Lemon出品:Python数据之道用 Python 动态曲线图来对全球疫情进行演示大家好,我是 Lemon 。最近一段时间,我写了几篇用 Python 的交互式可视化工具 Pl...

Oner.wv的专栏 1130

Plotly中4种文本类型设置详解

作者:Lemon来源:Python数据之道Plotly中4种文本类型设置详解大家好,我是 Lemon 。在过去的一段时间里,我写了几篇用 Python 的交互式可视化工具 Plotly ...

Python数据之道 6426
上一篇: 迅速收藏!109个数据科学面试问答,你绝对不能错过的宝藏库!
下一篇: 用 Plotly 动态柱状图来演示全球疫情变化趋势 | 付费阅读文章处女作
Python数据之道
博客等级 码龄9年 3075粉丝 139原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值