原标题:python之最炫抖音动态图

我们使用2013 年-2019 年比特币(BTC) 的价格数据绘制面积图动画,其HTML 交互效果页面如图11-4-6 所示。该数据集包括四列数据:年份(year) 、城市名称(name) 及所在的洲(group) 、人口密度数值(value) ,转置的数据集如图11-4-7 所示,包括2013 年04 月28 日起每天的开盘、最高、最低和收盘的价格。

点击边框调出视频工具条

图11-4-6. 动态面积图的HTML 交互页面效果图

图11-4-7. 2013 年-2019 年比特币(BTC) 的价格数据集

具体实现代码

我们先导入数据集'BTC_price_history.csv',然后将date列转换成日期型数据。我们选择一天的最高和最低价的均值作为这一天比特币的价格Price。其具体代码如下:

我们设置图表每次展示Span_Date=180天的比特币价格数据,所以得到180天的数据集df_temp后,如果使用plt.fill_between函数可以实现红色填充的面积图,如图11-4-8(a)所示;如果使用plt.bar函数可以实现Spectral_r颜色映射的面积图,如图11-4-8(b)所示。图11-4-8的代码具体如下所示。

(a) 单色填充.

(b) 渐变色填充.

图11-4-8. 静态面积图.

我们将上面的静态面积图代码整合成函数。当开始的日期天数据绘制面积图;当开始的日期≥时,就选择截止到当前日期的天数据绘制面积图。使用函数绘制的不同日期的面积图如图所示。

(a)Num_Date=60.

(b)Num_Date=150.

图11-4-9. 不同日期Num_Date 的面积图.

使用matplotlib 包的animation.FuncAnimation 函数,调用draw_areachart(Num_Date) 函数,其中输入的参数Num_Date = np.arange(0,df.shape[0],1) ,最后使用Ipython 包的HTML 函数将动画转换成HTML 页面的形式演示,其动画不同日期下的演示效果如图11-4-10 所示。

其中,函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下(1) fig表示绘制动图的画布名称(figure);(2)func为自定义绘图函数,如draw_barchart函数;(3)frames为动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数draw_barchart (year)的形参“year”;(4) init_func为自定义开始帧,即初始化函数init,可省略;(5) interval表示更新频率,计量单位为ms;(6) blit表示选择更新所有点,还是仅更新产生变化的点,应选择为True,但mac用户应选择False,否则无法显示。

另外,也可以使用animator.save(‘ animation.gif’) 或者animator.save(‘ animation.mp4) 导出gif 或者mp4 格式的动画。但是如果要导出mp4 ,需要先安装已经安装ffmpeg 或者mencoder 。

图11-4-10. 面积图动画不同时间下的演示效果

ps:源代码与数据的Github下载地址:

https://github.com/EasyChart/Beautiful-Visualization-with-python

python数据可视化之美

本文来源即将出版的新书《python数据可视化之美》之动态图表的绘制,除此之外,书中还介绍了动态条形图和动态三维柱形地图的绘制。

matplotlib 包和plotnine 包都可以实现动态数据的可视化演示。其中,在matplotlib 包中,函数FuncAnimation(fig,func,frames,init_func,interval,blit) 是绘制动图的主要函数,其参数如下:(1) fig 为绘制动图的画布名称;(2) func 为自定义动画函数update ,比如11-4-1 的draw_barchart(year) 和11-4-2 的draw_areachart(Num_Date) ;(3) frames 为动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数update(n) 的形参“n” ;(4) init_func 为自定义开始帧,即初始化函数,可省略;(5) interval 为更新频率,以ms 计算;(5) blit 为选择更新所有点,还是仅更新产生变化的点。应选择True ,但mac 用户请选择False ,否则无法显示。plotnine 包的PlotnineAnimation 函数也可以绘制动态图表,但是对于不断更新的数据绘制动态图表时,动态图表生成速度很慢。

致谢与说明

自从9月份出版《R语言数据可视化之美》,很多读者问我能不能出一本python版的数据可视化教程。写书真的呕心沥血,但是在撰写过程中能系统性地总结所学的知识,可以查漏补缺,也是受益匪浅。R语言这本书是2017年5月断断续续写了1年半多,到今年5月份才修改出版。后来又花了3个多月增加了三章图表内容

所谓“大道相通”,不同软件的数据可视化原理都是相通的。python数据可视化这本书就是2018年对照着R语言那本书翻译而成。所以亲爱的读者请不必诧异于、我现在这么快就撰写完成《python数据可视化之美》。在这里,首先要感谢我的读者,感谢你们对我的支持与包容。也非常感谢我的大学好友金伟(现为职腾讯高级研究员)引导我入门python,也感谢香港理工大学的姚鹏鹏博士、清华大学的赵建树博士对我在学习python时的帮助。

最后,我觉得我还应该感谢的就是我自己。蓦然回首,四年弹指一挥间,从大学毕业到香港做学术研究这几年,经历过很多次的失望,也差点就抑郁,感谢我自己有一颗积极阳光乐观的心,终于守得云开见月明,如我所愿能坚持做我自己喜欢的事情。

小时候,读到课本里普希金说:“假如生活欺骗了你,不要悲伤,不要心急!忧郁的日子里需要镇静:相信吧,快乐的日子将会来临。”到现在才明白这确实是一条生活的潜规则。月有阴晴圆缺,人有悲欢离合。人不仅有趋利避害、喜甜厌苦的本能反应,还有趋欢避悲、求乐脱苦的本能调节。所以,悲伤的日子后面就是快乐的日子。

亲爱的朋友,也希望你能快乐每一天!

Github

【书籍推荐】《R语言数据可视化之美》

【书籍推荐】

相关下载

python炫酷的动画片_最炫酷的特效锁屏相关推荐

  1. python 阻止锁屏_想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件...

    原标题:想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件 Python是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了 ...

  2. python爬虫win10程序_Python爬虫教程:批量提取Win10锁屏壁纸

    使用Win10的朋友会发现,每次开机锁屏界面都会有不一样的漂亮图片,这些图片通常选自优秀的摄影作品,十分精美.但是由于系统会自动更换这些图片,所以就算再好看的图片,也许下次开机之后就被替换掉了. 借助 ...

  3. android 原生分享界面_手机资讯:省时省力!直接在锁屏界面打开应用App

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道省时省力!直接在锁屏界面打开应用App,那么既然现 ...

  4. iphone已停用怎么解锁_两种无密码解锁iPhone锁屏密码的方法

    现在很多手机都配备指纹解锁功能,大家平时用惯了指纹解锁,有时候在需要输入锁屏密码的时候反倒记不清密码是什么了.像是手机重启后就需要输入密码解锁,iPhone锁屏密码忘了怎么办? 多次输入错误密码还可能 ...

  5. 苹果天气不显示_谁说苹果手机不能设置锁屏显示天气?只要这样设置一下,轻松搞定...

    身边很多朋友都在用苹果手机,不过有些朋友都抱怨苹果手机,为什么不能设置锁屏界面天气,而很多安卓手机都支持这个功能呢?其实苹果手机也是可以设置的,不过这个方法比较少人知道,今天就给大家分享这个方法. 1 ...

  6. 电脑合上盖子不锁屏_笔记本合上盖子不锁屏

    操作系统名称 Microsoft Windows 10 家庭中文版 版本 10.0.18362 版本 18362 其他操作系统描述 没有资料 操作系统制造商 Microsoft Corporation ...

  7. win7开机密码_如何开启win7系统自动锁屏功能 win7自动锁屏功能开启方法【详解】...

    我们都清楚电脑能够设置开机密码来保护自己的电脑不让别人使用,如果电脑已经开启了,就可以选择自动锁屏功能,那么win7系统如何开启自动锁屏功能呢?今天为大家分享win7系统开启自动锁屏功能的操作方法. ...

  8. Win11新特性:在平板锁屏界面还有酷炫的3D视差效果

    在深入挖掘 Windows 11 系统之后,用户再次发现了隐藏的 Windows 10 Mobile 保留功能.知名破解达人 ADeltaX 表示,如果你的设备有合适的硬件,Windows 11 将在 ...

  9. 使用Python和OpenCV标记超级像素的炫彩度

    使用Python和OpenCV标记超级像素的炫彩度 1. 效果图 2. 步骤 3. 源代码 参考 这篇博客将介绍如何使用SLIC分割算法来计算输入图像的超像素,并对每一块超像素区域计算炫彩度量值.然后 ...

最新文章

  1. 给页面字段中添加一个按钮,点击按钮实现弹窗效果
  2. 脚注交叉引用序号不一样_期末干货|蛋黄君的论文不秃头指南
  3. Hadoop 实践(一) 环境搭建
  4. php log 行号 debug_backtrace,PHP 基于debug_backtrace的流程日志与日志分析
  5. 使用Keras打造一个实时可用交通标志识别App
  6. python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频
  7. SpringBoot 笔记
  8. 例3.5 二叉排序树 - 九度教程第35题(二叉排序树)
  9. Oracle 数据脱敏
  10. 计算机课的十个小游戏制作教程,腾讯内容开放平台
  11. 量子计算机介绍ppt,量子信息ppt
  12. 日语---之百度百科
  13. 12000 颗卫星为地球织网!马斯克昨夜踏上改变世界的第6个征程
  14. code405是什么意思_HTTP协议状态码详解(HTTP Status Code)
  15. 【理解】Beta贝塔分布
  16. AJAX 请求 NIDE 搭建简单服务
  17. R语言时间序列分析-根据aic值选择arima模型
  18. docfx 做一个和微软一样的文档平台
  19. myCobot pro 机械臂(5)Robotics Toolbox for MATLA(开发环境:matlab)
  20. 苹果怎么安装未签名的app_App苹果签名有什么作用?

热门文章

  1. VVC帧间预测(八)DMVR
  2. JAVA入门学习 —方法使用
  3. mqtt断开自动重连
  4. 狂神说——Mybatis 学习
  5. 小甲鱼python003答案_小甲鱼Python第003讲:插曲之变量和字符串|课后测验及参考答案...
  6. HFSS学习笔记——T型波导
  7. 虚拟机可以多开一台服务器吗,游戏多开必备:虚拟机vmware安装
  8. Java -- 用文本文档写代码
  9. 2012年2月12日汇报Axure RP Pro 6.5 Beta简体中文加强测试版进展
  10. 计算机组成原理调试程序,计算机组成原理实验调试系统调试系统.PDF