先看一下最终效果,这是一张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,让整个效果更加爆燃。