Matplotlib快速入門指南(適合小白)
1. Matplotlib 常用模塊
Matplotlib
庫中主要包含兩個重要模塊 pyplob
和 pylab
。 pyplot
是 Matplotlib
中的一個重要模塊,在后續(xù)教程中,我們會經(jīng)常使用 pyplot
,該模塊允許我們自動、隱式地創(chuàng)建圖形及其軸,以實(shí)現(xiàn)所需的繪圖;使用該模塊,可以實(shí)現(xiàn)圖形的快速繪制,而不需要進(jìn)行任何圖形或軸的實(shí)例化。 pylab
是 Matplotlib
的另一個重要模塊,在需要使用矩陣、執(zhí)行數(shù)學(xué)運(yùn)算等函數(shù)功能時可以使用該模塊,通常情況下不建議使用該模塊。
2. Matplotlib 常用概念
我們已經(jīng)知道, Matplotlib
是一個功能強(qiáng)大的繪圖庫,可以用于繪圖許多類型的圖,包括曲線圖、直方圖、輪廓圖、散點(diǎn)圖、箱型圖等等。在繼續(xù)使用 Matplolib
進(jìn)行繪圖之前,我們首先對 Matplolib
中常用的一些基本概念和術(shù)語進(jìn)行介紹,以對 Matplolib
有更好的了解。使用 Matplotlib
創(chuàng)建的圖形包含很多部分,主要有 Figure
, Axis
, Axes
, Artist
。
Figure
:Figure
是用于創(chuàng)建不同繪圖的畫布,Matplotlib
圖形中的Figure
可以包含一個或多個axes/plots
。Axis
:Matplotlib
圖形中的軸axis
用于限制繪制圖形的邊界,基本上類似于數(shù)學(xué)中的坐標(biāo)軸概念;例如,對于3
維繪圖,包含X
軸、Y
軸和Z
軸。Axes
:axes
通??梢员灰暈橐粋€繪圖plot
,圖形中可以包含多個axes
。Artist
:一個Matplotlib
生成圖形中的一切都是Artist
對象,也可以說Artist
是所有其它類的父類,大多數(shù)artist
都是在axes
上所綁定,包括文本對象、Line2D
對象等。
以上概念間的相關(guān)關(guān)系如下圖所示:
3. Matplotlib 簡單示例
3.1 導(dǎo)入 Matplotlib 庫
在代碼中使用 Matplotlib
庫時,通常我們會使用一些約定俗成的別名用于簡化代碼:
import matplotlib as mpl from matplotlib import pyplot as plt
這種導(dǎo)入方法對于以下三種 Matplotlib
的使用方式都是通用的。
3.1 編寫 Python 腳本繪制圖形
接下來,我們編寫一個入門示例,首先利用 Numpy
創(chuàng)建 NumPy
數(shù)組,然后使用 Matplotlib
將其可視化。我們首先編寫一個名為 fistplt.py
的文件,并在其中鍵入以下代碼:
# fistplt.py import matplotlib as mpl from matplotlib import pyplot as plt import numpy as np x = np.arange(6) y = x ** 3 + 5 * x - 10 plt.plot(x, y) plt.show()
在以上代碼中, np.arange(start, stop, step)
函數(shù)用于以給定的間隔 step
創(chuàng)建間距均勻的數(shù)列,起始值 start
和間隔 step
參數(shù)的默認(rèn)值分別為 0
和 1
,該函數(shù)的返回值不包含停止值 stop
,即返回半開區(qū)間 [start, stop)
。在以上示例中,我們創(chuàng)建了一個以 0
開始,以 5
結(jié)束的數(shù)組,即 [0, 1, 2, 3, 4, 5]
。接下來,我們使用函數(shù) y = x 3 + 5 × x − 10 y=x^3+5\times x-10 y=x3+5×x−10 根據(jù)輸入 x x x,創(chuàng)建了函數(shù)值 y y y,用于繪制 2D
圖形。
接下來,我們使用函數(shù) plot()
將其可視化, plot(x, y)
用于繪制一條曲線,其中,曲線點(diǎn)的 x
坐標(biāo)在列表 x
中給出,曲線點(diǎn)的 y
坐標(biāo)在列表 y
中給出, plot()
函數(shù)還包含一些其它的可選參數(shù)用于控制曲線樣式。
最后 show()
函數(shù)用于顯示繪制的圖形, show()
函數(shù)會啟動一個事件循環(huán),查找所有當(dāng)前 Figure
對象,并打開一個或多個顯示 Figure
的交互式窗口。通常 plt.show()
函數(shù)在一個 Python
腳本中只能使用一次,通常位于腳本末尾,應(yīng)盡量避免在同一腳本中多次使用 show()
函數(shù)。
因此我們可以總結(jié)使用 Matplotlib
進(jìn)行繪圖的基本步驟:
- 準(zhǔn)備數(shù)據(jù),可以使用純
Python
創(chuàng)建,也可以讀取外部文件或使用Numpy
等其他庫獲取所需展示的數(shù)據(jù) - 使用繪圖函數(shù)進(jìn)行繪制,例如本節(jié)所用
plot()
函數(shù)用于繪制曲線圖,后續(xù)的學(xué)習(xí)中,我們也將學(xué)習(xí)其它多種不同繪圖函數(shù),包括柱狀圖bar()
,餅圖pie()
等等 - 將繪圖結(jié)果進(jìn)行展示
show()
或保存savefig('file_name')
,需要注意的是,不能在show()
之后savefig()
,這是由于使用show()
函數(shù)后,畫布會進(jìn)行刷新,再進(jìn)行保存時只會保存空白圖形
編寫代碼完成后,在命令行提示符下使用命令: python firstplt.py
運(yùn)行上述腳本,它會打開一個繪圖窗口,其中顯示的代碼中所繪制的圖形:
如上圖所示,可以看到繪圖窗口中還包含多個圖標(biāo),其中:
項目 | Value |
---|---|
![]() | 此按鈕用于將所繪制的圖形另存為所需格式的圖片,包括png,jpg,pdf,svg等常見格式 |
![]() | 此按鈕用于調(diào)整圖片的尺寸,邊距等圖片屬性 |
![]() | 此按鈕用于縮放圖片,用于觀察圖形細(xì)節(jié),單擊此按鈕后,在圖形上使用鼠標(biāo)左鍵拖拽進(jìn)行放大,使用鼠標(biāo)右鍵拖拽進(jìn)行縮小 |
![]() | 此按鈕用于移動圖形,可以與“縮放”按鈕結(jié)合觀察放大后圖片的具體細(xì)節(jié),同時,單擊此按鈕后,在圖形上使用鼠標(biāo)右鍵拖拽可以縮放坐標(biāo)軸的比例 |
![]() | 此按鈕用于將圖形恢復(fù)到其初始狀態(tài),取消縮放、移動等操作 |
NOTE:
在之后的教程中,我們主要使用這種方式進(jìn)行講解,但是相關(guān)的繪圖方法與接下來要講的兩種 Matplotlib
使用方式完全相同。
3.2 在 Jupyter Notebook 中使用Matplotlib
Jupyter Notebook
是一個基于瀏覽器的交互式數(shù)據(jù)分析工具,用于將相關(guān)描述、代碼、圖形、HTML元素以及多種內(nèi)容組合到一個可執(zhí)行文檔中。如果要 Jupyter Notebook
中以交互方式展示繪圖結(jié)果,使用 %matplotlib
命令,除此之外,在 Jupyter Notebook
中,還可以選擇將圖形直接嵌入 Notbook 中:
%matplotlib inline
命令 %matplotlib inline
會將繪圖結(jié)果靜態(tài)的嵌入到 Jupyter Notebook
中,而使用命令 %matplotlib
后 Matplotlib
繪制仍將打開一個交互式繪圖窗口來繪制圖形。
然后導(dǎo)入 Matplotlib 的方法與在腳本中完全一致:
import matplotlib as mpl from matplotlib import pyplot as plt
在下圖中,可以看到使用 %matplotlib
命令時,仍會打開一個交互式繪圖窗口來進(jìn)行繪制。
而在下圖中,可以看到使用 %matplotlib inline
命令則會將繪圖結(jié)果直接靜態(tài)的嵌入到 Jupyter Notebook
中。
3.3 在 IPython Shell 中使用 Matplotlib
如果要在 IPython Shell
中使用 Matplotlib
模式,需要在啟動 ipython
后使用 %matplotlib
魔法命令:
%matplotlib
運(yùn)行以上命令時,它將給出 Matplotlib 所使用的后端:
Using matplotlib backend: Qt5Agg
在執(zhí)行上述魔法命令后,通過導(dǎo)入 Matplotlib
庫就可以使用 Matplotlib
庫,這與其它方式使用 Matploblib
時的導(dǎo)入方式完全相同:
import matplotlib as mpl from matplotlib import pyplot as plt
接下里,使用任何繪圖函數(shù)命令都將打開一個交互式繪圖窗口來繪制圖形。
In [1]: %matplotlib Using matplotlib backend: Qt5Agg In [2]: import matplotlib as mpl ...: from matplotlib import pyplot as plt ...: import numpy as np In [3]: x = np.arange(6) ...: y = x ** 3 + 5 * x - 10 ...: plt.plot(x,y) Out[3]: [<matplotlib.lines.Line2D at 0x7f1a0e4b2550>]
相關(guān)鏈接
總結(jié)
到此這篇關(guān)于Matplotlib快速入門指南的文章就介紹到這了,更多相關(guān)Matplotlib快速入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python pandas模糊匹配 讀取Excel后 獲取指定指標(biāo)的操作
這篇文章主要介紹了python pandas模糊匹配 讀取Excel后 獲取指定指標(biāo)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python實(shí)現(xiàn)歷史記錄功能(實(shí)際案例)
很多應(yīng)用程序都有瀏覽用戶的歷史記錄的功能,瀏覽器可以查看最近訪問過的網(wǎng)頁,現(xiàn)在我們制作了一個簡單的猜數(shù)字的小游戲,添加歷史記錄功能,顯示用戶最近猜過的數(shù)字,如何實(shí)現(xiàn)呢?跟隨小編一起看看吧2022-04-04基于Python實(shí)現(xiàn)文章信息統(tǒng)計的小工具
及時的統(tǒng)計可以更好的去分析讀者對于內(nèi)容的需求,了解文章內(nèi)容的價值,以及從側(cè)面認(rèn)識自己在知識創(chuàng)作方面的能力。本文就來用Python制作一個文章信息統(tǒng)計的小工具?,希望對大家有所幫助2023-02-02PyCharm調(diào)用matplotlib繪圖時圖像彈出問題詳解
這篇文章主要給大家介紹了關(guān)于PyCharm調(diào)用matplotlib繪圖時圖像彈出問題的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PyCharm具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-07-07Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實(shí)例
今天小編就為大家分享一篇關(guān)于Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實(shí)例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02python linecache讀取行更新的實(shí)現(xiàn)
本文主要介紹了python linecache讀取行更新的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03