40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!
本文首发于量化投资与机器学习
转载于 https://mp.weixin.qq.com/s/KaB_7oXZf0_IV97y0pRPmQ
最近,这种动态排序条形图视频超级火,如下图:
具体来说,这种图可以叫:Bar Chart Race,有什么国家GDP的、某某沉浮史等等,为了符合公众号的身份属性,我们为大家制作了这个较为简单的可视化视频:2015~2019中国私募基金市场风云变幻,先一睹为快吧!
大家可以基于私募基金数据做出更多有趣的可视化来!也欢迎大家踊跃投稿哦!
择日不如撞日,今天公众号手把手教你!
我们使用最流行的Python语言,基于Matplotlib来实现上面的动态效果。案例和数据自1500年以来世界上10个最大城市排名。
准备工作
导入相关库:
使用pandas读取相关城市人口数据集。我们只需要4列数据:'name'、'group'、'year'、'value'。一个名称映射到一个组,每年有一个值。
原始数据集:
数据转换
使用pandas进行转换,得到前10个值。
基础图
让我们画一个基本的柱状图。首先创建一个图形和一个坐标轴。然后使用ax.barh (x,y)绘制水平条形图。
颜色、标签
接下来,让我们根据组添加值、组标签和颜色。使用 colors 和 group_lk 为条形图添加颜色。
group_lk 是 name 和 group 值之间的映射。
细节刻画
为了方便起见,我们将代码迁移到draw_barchart函数中:
Text:更新字体大小、颜色、方向
Axis:将x轴移动到顶部,添加颜色和副标题
Grid:在bars添加
Format:逗号分隔值和轴标记符
Remove:框架,y轴标签
动态化,激动人心!
要对上图进行动画处理,我们将使用 matplotlib.animation 中的 FuncAnimation。
Functionatio 通过反复调用函数(在画布上绘制)来创建动画。在本例中,该函数将是 draw_barchart。 我们使用 frames,这个参数接受你想运行的 draw_barchart 的值——我们将从1968年运行到2018年。
我们还可以通过下面的红框,调整速度、倒退等操作。
你可以将动画对象保存为视频或gif形式:
OK,大功告成!赶快一显身手吧!
整个代码不到40行!
获取代码
链接:https://pan.baidu.com/s/1O-f2tQFErHJ-APjopGGqBA(或点击阅读原文)
密码:c9ow
40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!的更多相关文章
- 8个超炫酷的纯CSS3动画及源码分享
在现代网页中,我们已经越来越习惯使用大量的CSS3元素,而现在的浏览器也基本都支持CSS3,所以很多时候我们不妨思考一下是否可以用纯CSS3制作一些有趣或者实用的网页.本文要分享8个超炫酷的纯CSS3 ...
- 8个超炫酷仿HTML5动画源码
1.jQuery万年历插件 带农历老皇历功能 这是一款基于jQuery的日历插件,这款日历插件和之前分享的日历控件有很大差异,它是一本万年历,包含了农历已经老皇历的功能,是一个挑好日子的工具.同时日历 ...
- 程序猿必备的10款超炫酷HTML5 Canvas插件
1.超炫酷HTML5 Canvas 3D旋转地球动画 这是一款基于HTML5 Canvas的3D地球模拟动画,动画以太空作为背景,地球在太空中旋转,同时我们也可以拖拽鼠标来从不同的角度观察地球.另外我 ...
- 百度前端技术学院2018笔记 之 利用 CSS animation 制作一个炫酷的 Slider
前言 题目地址 利用 CSS animation 制作一个炫酷的 Slider 思路整理 首先页面包含三种东西 一个是type为radio的input其实就是单选框 二是每个单选框对应的label 三 ...
- 8个超炫酷的jQuery相册插件欣赏
在网页中,相册应用十分常见,如果你经常逛一些社交网站,那么你应该会注意到很多各式各样的网页相册应用.今天我们要来分享一些最新收集的jQuery相册插件,这些精美的jQuery相册插件可以帮助你快速搭建 ...
- 手把手带你做一个超炫酷loading成功动画view Android自定义view
写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾 ...
- 超炫酷的jQuery/HTML5应用效果及源码
jQuery非常强大,我们之前也用jQuery分享过很多实用的插件.HTML5可以让网页变得更加绚丽多彩,将HTML5和jQuery结合使用那将发挥更棒的效果. 今天向大家收集了一些关于HTML5和j ...
- 带大家用40行python代码实现一个疫情地图
最近两个月,因为新冠病毒无情的肆虐,相信会给每个中国人的记忆中画上重重的一笔.到今天为止,疫情形势依然十分严峻,虽然除湖北外的其他省份已经连续十一天确诊人数下降,但是接下来还有将近至少1.6亿的人口迁 ...
- 6个超炫酷的HTML5电子书翻页动画
相信大家一定遇到过一些电子书网站,我们可以通过像看书一样翻页来浏览电子书的内容.今天我们要分享的HTML5应用跟电子书翻页有关,我们精选出来的6个电子书翻页动画都非常炫酷,而且都提供源码下载,有需要的 ...
随机推荐
- WPF 2D纹理的准确映射
TextureCoordinates定义了如何将一副2D纹理映射到所建立的3D网格上,TextureCoordinates为Positions集合中的每一个3D顶点提供了一个2D顶点. 映射时方向确定 ...
- Rsync服务常见问题及解决
1. rsync服务端开启的iptables防火墙/selinux没关 [客户端的错误] No route to host [错误演示过程] [root@nfs01 tmp]# rsync -avz ...
- include文件包含漏洞
发现allow_url_include 是on状态 既然已经直接包含了phpinfo()是文件,首先搜索了一下allow_url_include,发现是处于打开的状态. 既然 allow_url_in ...
- java规范总结
1.所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较. 说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 Intege ...
- 安装完Linux需要做的关于安全的事
故事是这样子的 最近主机受到攻击,原因可能是redis集群没有设置密码(因为快过期了,不想搞得太复杂就没设),然后被人家搞事情了,就被人一把set了些执行脚本,形如curl -fsSL http:// ...
- OSCP Learning Notes - Capstone(4)
SickOS 1.2 Walkthrough Preparation: Down load the SickOS virtual machines from the following website ...
- P5836 [USACO19DEC]Milk Visits S 从并查集到LCA(最近公共祖先) Tarjan算法 (初级)
为什么以它为例,因为这个最水,LCA唯一黄题. 首先做两道并查集的练习(估计已经忘光了).简单来说并查集就是认爸爸找爸爸的算法.先根据线索理认爸爸,然后查询阶段如果发现他们的爸爸相同,那就是联通一家的 ...
- .NET 使用sock5做代理(不是搭建服务端)
在日常开发中经常会遇到这些需求,爬取数据,都知道现在通常用python爬取是很方便的,但是免不了还有很多伙伴在用NET来爬取,在爬取数据的时候我们知道需要使用代理服务器,如果不用代理,你的IP很有可能 ...
- Linux cut 命令详解
cut 命令在Linux和Unix中的作用是从文件中的每一行中截取出一些部分,并输出到标准输出中.我们可以使用 cut 命令从一行字符串中于以字节,字符,字段(分隔符)等单位截取一部分内容出来. 在本 ...
- 轻量级分布式延时任务处理组件easyTask-L-入门篇
今天给大家介绍一款新武器.我自研的一个java组件easyTask-L.这个是做啥的呢?我之前研发了一款单机版本的easyTask,这次是要介绍另外一款easyTask-L.区别就是后者支持分布式环境 ...