Matplotlib學(xué)習(xí)筆記(一)

前言:

Python初學(xué)者,希望各位大佬看了文章后能指出錯(cuò)誤或者給些建議!

如有雷同,純屬巧合!

= =!

環(huán)境

linux

python3

安裝

pip3 install matplotlib

matplotlib下中文亂碼解決

網(wǎng)上有多種解決辦法,我經(jīng)過(guò)嘗試選擇了可行的其中一種!

該方法在我的matplotlib學(xué)習(xí)筆記(二)中被改進(jìn)了!

Linux下:

fc-list :lang=zh #查看系統(tǒng)中中文字體存放路徑

python中:

導(dǎo)入FontProperties模塊

創(chuàng)建font實(shí)例,將本地中文字體路徑作為fname參數(shù)值傳遞給FontProperties!

然后在繪圖中需要用到中文的地方傳入?yún)?shù)fontproperties=font即可解決中文亂碼問(wèn)題!注:在圖例中文亂碼問(wèn)題中需要在調(diào)用legend()方法時(shí)傳入?yún)?shù)prop=font!

測(cè)試



Matplotlib簡(jiǎn)單折線圖繪制

使用pyplot模塊下的plot(x坐標(biāo), y坐標(biāo))方法可以很方便的繪制折線圖!

簡(jiǎn)單折線圖


X坐標(biāo)和Y坐標(biāo)可以傳入多個(gè)值,利用列表或者元組來(lái)存儲(chǔ)這些值!作為參數(shù)傳入給plot方法matplotlib會(huì)根據(jù)迭代來(lái)獲取相對(duì)應(yīng)的X坐標(biāo)值和Y坐標(biāo)值并根據(jù)坐標(biāo)來(lái)連線!

設(shè)置折線粗細(xì)

使用linewidth參數(shù)可以設(shè)置折現(xiàn)的粗細(xì),linewidth可以簡(jiǎn)寫(xiě)成lw!


Matplotlib簡(jiǎn)單散點(diǎn)圖繪制

使用pyplot模塊下的scatter(x坐標(biāo), y坐標(biāo))方法可以很簡(jiǎn)單的繪制散點(diǎn)圖!


簡(jiǎn)單散點(diǎn)圖


X坐標(biāo)與Y坐標(biāo)可以是多個(gè)值,利用列表或者元組存儲(chǔ)后存入即可讓matplotlib繪制多個(gè)散點(diǎn)!


設(shè)置散點(diǎn)大小

使用s參數(shù)可以設(shè)置散點(diǎn)的大小!


設(shè)置散點(diǎn)顏色

使用c參數(shù)可以設(shè)置散點(diǎn)顏色!

參數(shù)值可以是r(red), g(grenn), b(blue), k(black)等等, 還可以使用十六進(jìn)制顏色代碼!


設(shè)置散點(diǎn)格式

使用marker參數(shù)可以設(shè)置散點(diǎn)格式

參數(shù)值有

's' -> 正方形

'p' -> 六邊形

'.' -> .

等等

可以查看官方的散點(diǎn)格式介紹:markers介紹



Matplotlib設(shè)置散點(diǎn)圖顏色映射

使用顏色映射時(shí),c參數(shù)的值需要設(shè)置成x坐標(biāo)列表繪制y坐標(biāo)列表!還要設(shè)置cmap參數(shù)值為plt.cm.Blues或者其他的顏色映射表代碼如plt.cm.Reds!



保存圖表

使用savefig(路徑, )方法可以保存圖標(biāo)到本地路徑!


去掉圖標(biāo)多余空白區(qū)域

設(shè)置bbox_inches參數(shù),參數(shù)值為"tight"可以將保存圖片的多余空白區(qū)域去掉!



隱藏坐標(biāo)軸

設(shè)置plt.axes().getxaxis().set_visible(False)可以隱藏x坐標(biāo)軸!


設(shè)置plt.axes().get_yaxis().set_visible(False)可以隱藏y坐標(biāo)軸!


固定坐標(biāo)范圍

使用plt.axis([xmin, xmax, ymin, ymax])可以固定繪制圖的坐標(biāo)范圍!



Xlim(xmin, xmax)可以固定繪制圖的x坐標(biāo)范圍,Ylim可以固定繪制圖dy坐標(biāo)范圍!



添加圖例

在調(diào)用繪制函數(shù)時(shí)如plot、scatter加上label=注釋參數(shù)可以很簡(jiǎn)單的為圖片添加圖例!

不過(guò)必須調(diào)用legend()方法來(lái)顯示圖例!

另外grid(True)方法可以讓圖片顯示網(wǎng)格!


圖例顯示中文

跟上面講的一樣,在legend方法中加入?yún)?shù)prop=font即可

font為FontProperties實(shí)例!


設(shè)置圖例位置

在legend中使用loc參數(shù)可以設(shè)置圖例位置

可以設(shè)置的位置參數(shù)有



創(chuàng)建子圖

子圖就是在主圖下分割出來(lái)的圖!

使用subplot()方法即可創(chuàng)建一張子圖,此方法也是用來(lái)切換子圖的!

該方法需要傳遞三個(gè)參數(shù),分別是行數(shù)、列數(shù)、序號(hào)!

行數(shù):主圖行分割的次數(shù)!

列數(shù):主圖列分割的次數(shù)!

也就是說(shuō)當(dāng)創(chuàng)建一張子圖時(shí),指定的行數(shù)和列數(shù)即子圖獲得由主圖行數(shù)、列數(shù)分割到的指定行數(shù)、列數(shù)分之1!例如subplot(2, 1, 1)即這張子圖的行數(shù)為主圖行數(shù)的2分之一,列數(shù)為主圖的1分之一,序號(hào)為1!

當(dāng)行數(shù)和列數(shù)的值小于10時(shí)可以簡(jiǎn)寫(xiě)成221即2行2列序號(hào)為1!否則要寫(xiě)成(10, 10, 1)

當(dāng)創(chuàng)建完多張子圖時(shí),想要切換子圖來(lái)繪制時(shí)就需要再調(diào)用該方法參數(shù)與創(chuàng)建子圖時(shí)的參數(shù)必須一致!

當(dāng)切換了子圖后所有的繪圖操作都是針對(duì)指定子圖的!

測(cè)試

創(chuàng)建一張子圖,分割主圖行數(shù)的一半,和主圖列數(shù)的全部!


創(chuàng)建4張子圖,每張子圖的行數(shù)為主圖行數(shù)的2分之一, 列數(shù)也為主圖行數(shù)的2分之一


子圖間的切換


圖片中的參數(shù)"gs"g為顏色, s為坐標(biāo)點(diǎn)圖案(正方形圖案)!可以以這樣的方式來(lái)傳遞顏色、圖案等!參數(shù)

注:這里使用了plot()方法卻只繪制出了散點(diǎn)圖!因?yàn)樵趥鬟f參數(shù)時(shí)沒(méi)有傳遞線的圖案所導(dǎo)致的!

改進(jìn)



Matplotlib figure()方法

使用figure()方法可以用來(lái)創(chuàng)建多個(gè)主圖,這些主圖是完全獨(dú)立的圖!

不使用figure()方法時(shí)默認(rèn)有一張主圖!

使用了figure()方法后可以使用plt.get_fignums()方法來(lái)查看當(dāng)前創(chuàng)建的主圖數(shù)!


figure()方法可以傳入num參數(shù)參數(shù)值為一個(gè)整數(shù)!代表著這張主圖的序號(hào)!就像子圖一樣當(dāng)想要來(lái)回切換主圖時(shí)就可以利用這個(gè)序號(hào)來(lái)切換!每切換了一張主圖后所有繪圖操作只對(duì)當(dāng)前主圖有效!


figure()方法還可以傳入figsize參數(shù)!

參數(shù)值需要兩個(gè)整數(shù)一個(gè)為行長(zhǎng)一個(gè)為列長(zhǎng)!使用列表或者元組來(lái)傳遞!


測(cè)試

創(chuàng)建兩張主圖一張大小為10,10一張為4,4!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容