知行编程网知行编程网  2022-04-12 09:00 知行编程网 隐藏边栏 |   抢沙发  27 
文章评分 0 次,平均分 0.0
最近,这种动态排序条形图视频超级火,如下图:


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


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


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



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


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


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


准备工作

导入相关库:


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


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


原始数据集:


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

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

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


数据转换

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


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

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


基础图

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


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


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


颜色、标签

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


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


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


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


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


细节刻画

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


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

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

  • Grid:在bars添加

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

  • Remove:框架,y轴标签


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


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


动态化,激动人心!

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


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

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


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


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


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


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


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

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


整个代码不到40行!




抽百度音箱
8.8元学习7天AI课程,还送百度AI音箱


本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享