jupyter notebook 實現matplotlib圖動態重新整理
我就廢話不多說了,大家還是直接看程式碼吧!
import matplotlib %matplotlib inline from IPython import display
需要重新整理的地方,畫完圖之後新增
display.clear_output(wait=True)
補充知識:jupyter notebook matplotlib繪製動態圖並顯示在notebook中
有些時候matplotlib 的繪圖沒法顯示在notebook中,或者顯示不了。這與backend有關。
首先啟動你的notebook,輸入
%pylab
檢視你的matplotlib後端,我的輸出為:
Qt5Agg
這是後端的渲染方式,使用的是qt5渲染。啟用方式為在繪圖之前插入程式碼段:
%matplotlib qt5
這樣就能顯示出圖,但是是顯示在notebook之外的,如果我使用%matplotlib inline,圖的顯示並不正常。我也不知道為什麼,,,,,,,,,,,,,
如果你輸出的後端為其他型別,建議檢視下面的資料,直接輸入對應的繪圖啟用方式。
補充知識:matplotlib 常用backend
matplotlib 使用簡明教程(一)-基礎概念
Matplotlib 是一個用於繪製圖表的 Python 庫,可以用來處理圖片、繪製統計類的圖表。
本文分為幾篇,主要目的在於說明 Matplotlib 的一些使用方法。第一篇用於介紹 Matplotlib 的一些基本概念。
基本組成
以官網中圖片說明 Matplotlib 圖表中的基本組成成分。
figure:整個畫布,包含一個或多個 axes
axes:畫布中的某一個圖表,包含一個 plot
artist:元素,包括圖中所示的 label、line 等,也包括 plot
backend
每一種輸出的能力都叫做一種 backend,在我的理解中有點類似渲染器。
IPython 中的魔法語句 %matplotlib xxxx 就是選擇 backend。
選用哪種 backend,其優先順序選取如下:
matplotlibrc 檔案中的 backend
使用 MPLBACKEND 環境變數
使用 matplotlib.use() 函式,需要在匯入 pyplot 前使用
backend 從種類上,分為可互動型(user interface)和不可互動型兩種(hardcopy),如果希望檢視本地支援的 backend 有哪些,可以使用
matplotlib.rcsetup.interactive_bk # 可互動型 matplotlib.rcsetup.non_interactive_bk # 不可互動型 matplotlib.rcsetup.all_backends # 所有 backend
獲取當前的 backend 可以使用 matplotlib.pyplot.get_backend()
常用 backend 已在文尾附上。
互動模式
我理解,“互動模式”即代表著這個圖示在繪製後可以動態變化,例如預設的動畫以及使用者的操作。
當開啟互動模式後,繪製的圖表會自動更新、繪製,如果希望手動更新圖表,則使用 draw() 函式;而在非互動模式下,當所有後臺繪製完成後,需要使用 show() 函式,才會將最終圖表展示出來。
如果希望使用互動模式,需要選用可互動型的 backend。
通過 matplotlib.interactive() 設定互動模式的開啟與關閉
通過 matplotlib.is_interactive() 查詢當前實發支援互動模式
也可以通過 matplotlib.pyplot.ion() 和 matplotlib.pyplot.ioff() 來開啟/關閉互動模式
附:常用 backend
不可互動型
AGG:渲染為 png 檔案
PS:渲染為 ps 檔案
PDF:渲染為 pdf 檔案
SVG:渲染為 svg 檔案
Cairo:使用 Cairo 引擎渲染
可互動型
Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5
Qt4Agg:使用 Qt4 渲染,IPython 中可使用 %matplotlib qt4
ipympl:使用 ipympl 庫,Ipython 中可使用 %matplotlib ipympl
macosx:使用 Cocoa 畫布渲染,Ipython 中可使用 %matplotlib osx
nbAgg:Jupyter Notebook 中使用的 backend,Jupyter 中使用 %matplotlib notebook 來啟用
WXAgg:使用 wxWidgets 庫來渲染,Ipython 中可使用 %matplotlib wx
inline:嚴格地講並不是一個 backend,這個 IPython 中的一個語法,表示把圖表嵌入筆記中,使用 %matplotlib inline
以上這篇jupyter notebook 實現matplotlib圖動態重新整理就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。