这篇文章主要介绍了python基础语法学完学什么好,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。
数据下载地址:.
我们将用Matplotlib和Seaborn绘图,用Numpy和Pandas处理数据。Matplotlib也提供了一些我们做动画可以的函数,所以让我们首先导入所有依赖项。
然后用Pandas载入数据并转成DataFrame类型的数据结构。因为我们要针对不同阿片类药物的滥用画图,写个函数来载入感兴趣的特定行的数据能避免重复代码。(小编注:原文提供的代码在读取excel文件的时候使用了已废弃的sheetname参数,本文中已修正为sheet_name)
现在让我们来做动画吧!
首先,如果你和我一样使用的是jupyter notebook,请在代码首行加入 %matplotlib notebook,如此便可在notebook直接看到生成的动画而非保存后才可见。
我现在使用 get_data函数从表中检索海洛因过量的数据并放在有两列的Pandas DataFrame中,一列是年,一列是过量死亡的人数。
接下来我们初始化一个ffmpeg Writer并以20帧每秒、1800比特率进行录屏。你也可以根据喜好自行设置这些值。
(小编注:如果出现 RuntimeError:RequestedMovieWriter(ffmpeg)notavailable的报错,请自行安装ffmpeg,装了brew的Mac可以直接: brew install ffmpeg)
现在我们创建一个有几个标签的图形。 确保设置x和y轴的限制,以免动画随当前显示的数据范围乱跳转。
动画的核心是动画函数,你可以在其中定义视频的每一帧发生什么。这里的 i表示动画中帧的索引。 使用这个索引可以选择应在此帧中可见的数据范围。 然后我使用seaborn线图来绘制所选的数据。 最后两行代码只是为了让图表更美观。
我们用调用了 animate 函数并定义了帧数的 matplotlib.animation.FuncAnimation来开始动画, frames实际上定义了调用 animate的频率。
你可以用 ()把动画保存为mp4,如果你想直接看一看动画效果可以用() 。
现在我们的图表动起来啦:
动画能够正常运行但是感觉有点跳跃,所以我们需要在已有数据点之间增加更多的数据点来使动画的过渡平滑。于是我们使用另一个函数 augment。
现在我们只需要对我们的数据应用这个函数、增加 matplotlib.animation.FuncAnimation 函数的帧数。在这里我用参数 numsteps=10调用 augment函数,也就是增加数据点至160个,并且设置 frames=160 。这样以来,图表显得更为平滑,但还是在数值变动处有些突兀。
为了让我们的动画更平滑美观,我们可以增加一个平滑函数(具体请见: )。
另外我们也可以加上一点颜色和样式参数,让图表更个性化。
当当当!如此我们便得到了文章开头的动画图表。
这篇文章仅仅只是matplotlib动画功能的一个例子,你大可以用它来实现任何一种图表的动画效果。 简单调整 animate()函数内的参数和图表类型,就能得到无穷无尽的可能性。
来自硅谷的终身学习平台——优达学城(),专注于技能提升和求职法则,让你在家能追随 Google、Facebook、IBM 等行业大佬,从零开始掌握数据分析、机器学习、深度学习、人工智能、无人驾驶等前沿技术,激发未来无限可能!
原文地址1:https://blog.csdn.net/weixin_39846378/article/details/110039890
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099