使用Matplotlib画动态图实例

567 阅读1分钟
原文链接: zhuanlan.zhihu.com

关于matplotlib以及基本的画图代码,可参考该文章:15张图入门Matplotlib

在平时的工作中,有时我们需要画一些动态图。比如利用梯度下降去拟合一条曲线时,我们希望每隔几步就刻画一下当前拟合的曲线,从而看出拟合过程。例如:

这里我们同样使用matplotlib,通过几个实例来学习这种动态图的画法。

在matplotlib中画图有两种显示模式:

(1)阻塞模式,即必须利用plt.show()显示图片,且图片关闭之前代码将阻塞在该行。

(2)交互模式,即plt.plot()后立马显示图片,且不阻塞代码的继续运行。

Matplotlib中默认是使用阻塞模式。看一下这里用到的matplotlib中的几个函数:

plt.ion():打开交互模式
plt.ioff():关闭交互模式
plt.clf():清除当前的Figure对象
plt.cla():清除当前的Axes对象
plt.pause():暂停功能

了解了以上几个函数之后,就可以很方便的画出动态图了。原理很简单,就是一个“画图-->清理-->画图”的循环,注意这中间的pause暂停。效果如下:

还是老规矩,直接上代码,参见GitHub:python_visual_animation.py

=============================================================

作者主页:笑虎(Python爱好者,关注爬虫、数据分析、数据挖掘、数据可视化等)

作者专栏主页:撸代码,学知识 - 知乎专栏

作者GitHub主页:撸代码,学知识 - GitHub

欢迎大家拍砖、提意见。相互交流,共同进步!

==============================================================