用python 画炫酷的图并讲解-超炫酷动态排序图、视频,我都帮你用Python实现了…

  • Post author:
  • Post category:python


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

6efc14f0-385a-46ad-bd29-12661cda9049.gif

数据集获取方式

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

7783e54b-9e7a-457a-a296-bff5ddf04a6b.png
把数据整理一下,如下图的格式:

06599ea9-647b-415c-9b67-cbee8e1abe77.png

核心函数

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

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

fig 绘制动图的画布名称

func自定义动画函数,即下边程序定义的函数update

frames动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数update(n)的形参”n”

init_func自定义开始帧,即传入刚定义的函数init,初始化函数

interval更新频率,以ms计

blit选择更新所有点,还是仅更新产生变化的点。应选择True,但mac用户请选择False,否则无法显示

5e92f2ef-1691-4ffe-930b-e56482880958.png

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

0de3b65a-fcd7-4906-afa8-6962fc4655f9.png

配置视频

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

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

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

2f1b2d7a-3c9c-49e0-893c-6308256c3a4b.png
登录官网

05432c1b-763d-4c28-b134-3749d0eeb8f7.png
下载安装包,解压到某个文件夹下,复制解压缩后的bin目录下ffmpeg.exe的路径,沾到上面代码ffmpegpath = os.path.abspath()中即可。

后续

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