使用Matplotlib畫動態圖實例

關於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

歡迎大家拍磚、提意見。相互交流,共同進步!

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


推薦閱讀:

matplotlib.pyplot.imshow如何顯示灰度圖?

TAG:Python | Matplotlib | 数据可视化 |