今天看到一篇很好的文章,教我们如何在Python中创建动画图。很具有实践性,于是跟着码了一遍代码。
问题
这过程中遇到两个问题:
1 . 用pip install ffmpeg
安装了FFmpeg之后,仍然不能正常运行
2 . 解决第一个问题后,又报AttributeError:Seaborn Lineplot Module Object Has No Attribute 'Lineplot'
解决方案
问题一
在Windows上安装FFmpeg需要设置环境变量。
步骤一
从这里下载FFmpeg包,ffmpeg-20180913-1b98bfb-win64-static
到本地,解压后,重命名文件夹为FFmpeg
。复制或者剪切修改好的文件夹到C
盘。
步骤二
接下来在命令行中启用FFmpeg。右键单击此电脑
,选择属性
,找到高级系统设置
,进去。点击环境变量
,可以看到两个设置变量的框,在上面的xxx的用户变量
框里,找到Path
,选择新增,将C:\FFmpeg\bin
添加进去,点击确定
。
步骤三
测试FFmpeg是否安装成功。快捷方式win+R
,输入cmd
进入命令控制窗口。键入ffmpeg -version
,回车,若出现一系列关于FFmpeg的信息,说明设置成功。
问题二
对于Seaborn包没有属性Lineplot
问题,我首先百度了下,几乎都是建议先确认自己的Python环境是否正确,是否安装了需要用的包。于是我分别执行命令pip install matplotlib
和pip install seaborn
后,再重新导入这些模块到代码中,运行仍然报错。
一番折腾后,发现是seaborn包版本问题。Linplot
在0.9版本下的seaborn环境中才可以,因而需要对seaborn包进行升级,运行命令pip install seaborn==0.9.0
之后,再次运行代码,不报错了。
注
1 . 原文中使用的代码在读取excel文件的时候使用了已废弃的sheetname
参数,正确应该修改为sheet_name
2 . 若使用的是jupyter notebook,确保在代码首行加入了%matplotlib notebook
。%matplotlib notebook
提供了一些交互性,可能会很慢,因为渲染由服务器端完成。
然鹅,我加了后,在jupyter notebook中并没有看到正常的动画效果(原因未知)。程序运行是没有问题的,在本地生成了一个视频,可以正常显示动画图。