超火动态可视化条形图,绘制起来这么简单!

作者:QIML编辑部

来源:量化投资与机器学习
文章经授权转载

超火动态排序图:
代码不到40行,手把手教你!

—  01 

前言

最近,这种动态排序条形图视频超级火,如下图:

640?wx_fmt=gif

具体来说,这种图可以叫:Bar Chart Race,有什么国家GDP的、某某沉浮史等等,为了符合公众号的身份属性,我们为大家制作了这个较为简单的可视化视频:2015~2019中国私募基金市场风云变幻,先一睹为快吧!

和背景音乐一起播放更搭配哦!

大家可以基于私募基金数据做出更多有趣的可视化来!也欢迎大家踊跃投稿哦!

择日不如撞日,今天公众号手把手教你!

我们使用最流行的Python语言基于Matplotlib来实现上面的动态效果。案例和数据自1500年以来世界上10个最大城市排名。

—  02 

准备工作


导入相关库:

640?wx_fmt=png

使用pandas读取相关城市人口数据集。我们只需要4列数据:'name'、'group'、'year'、'value'。一个名称映射到一个组,每年有一个值。

原始数据集:

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

—  03 

数据转换


使用pandas进行转换,得到前10个值。

640?wx_fmt=png

640?wx_fmt=png

—  04 

基础图


让我们画一个基本的柱状图。首先创建一个图形和一个坐标轴。然后使用ax.barh (x,y)绘制水平条形图。

640?wx_fmt=png

640?wx_fmt=png

—  05 

颜色、标签


接下来,让我们根据组添加值、组标签和颜色。使用 colors 和 group_lk 为条形图添加颜色。

640?wx_fmt=png

group_lk 是 name 和 group 值之间的映射。

640?wx_fmt=png

640?wx_fmt=png

—  06 

细节刻画


为了方便起见,我们将代码迁移到draw_barchart函数中:

  • Text:更新字体大小、颜色、方向

  • Axis:将x轴移动到顶部,添加颜色和副标题

  • Grid:在bars添加

  • Format:逗号分隔值和轴标记符

  • Remove:框架,y轴标签

640?wx_fmt=png

640?wx_fmt=png

—  07 

动态化,激动人心!


要对上图进行动画处理,我们将使用 matplotlib.animation 中的 FuncAnimation

640?wx_fmt=png

Functionatio 通过反复调用函数(在画布上绘制)来创建动画。在本例中,该函数将是 draw_barchart。 我们使用 frames,这个参数接受你想运行的 draw_barchart 的值——我们将从1968年运行到2018年。

640?wx_fmt=png

640?wx_fmt=gif640?wx_fmt=png

我们还可以通过下面的红框,调整速度、倒退等操作。

你可以将动画对象保存为视频或gif形式:

640?wx_fmt=png

OK,大功告成!赶快一显身手吧!

整个代码不到40行!

640?wx_fmt=png

获取代码

在公号「量化投资与机器学习」后台输入(严格大小写)

Bar_Chart_Race_可视化

  • 18
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值