超炫酷动态排序图、视频,我都帮你用Python实现了

2020-09-08 14:40:27 浏览数 (1)

先看一下最终效果,这是一张Python生成的GIF,还可以输出MP4格式的视频,到底怎么做的?且听我娓娓道来——数据集、代码、详细做法全部讲清楚。

数据集获取方式

大家可以去国家统计局的网站,搜索想要的数据,比如本例中我们需要的是人口数据,如下图所示,下载数据即可,我比较喜欢csv格式。

把数据整理一下,如下图的格式:

核心函数

代码部分大家请看下面的的截图,这里我们只看一下核心函数的主要参数,非常重要!!!

函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下:

  • fig 绘制动图的画布名称
  • func自定义动画函数,即下边程序定义的函数update
  • frames动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数update(n)的形参“n”
  • init_func自定义开始帧,即传入刚定义的函数init,初始化函数
  • interval更新频率,以ms计
  • blit选择更新所有点,还是仅更新产生变化的点。应选择True,但mac用户请选择False,否则无法显示

其实原理就是生成每个年份的柱状图,然后用FuncAnimation绘制GIF

配置视频

大家运行上面代码的时候还是会出错的,报错信息:RuntimeError: Requested MovieWriter (ffmpeg) not available

因为我们还需要安装FFmpeg,它一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。

这里只讲一下ffmpeg的安装步骤:

登录官网

下载安装包,解压到某个文件夹下,复制解压缩后的bin目录下ffmpeg.exe的路径,沾到上面代码ffmpegpath = os.path.abspath()中即可。

后续

动态排名图可以输出为视频文件,会视频剪辑的还可以加上自己喜欢的bgm,让整个效果更加爆燃。

0 人点赞