matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標(biāo)軸設(shè)置)
1、plt.rcParams
plt(matplotlib.pyplot)使用rc配置文件來自定義圖形的各種默認(rèn)屬性,稱之為“rc配置”或“rc參數(shù)”。
通過rc參數(shù)可以修改默認(rèn)的屬性,包括窗體大小、每英寸的點(diǎn)數(shù)、線條寬度、顏色、樣式、坐標(biāo)軸、坐標(biāo)和網(wǎng)絡(luò)屬性、文本、字體等。rc參數(shù)存儲(chǔ)在字典變量中,通過字典的方式進(jìn)行訪問。

代碼:
import numpy as np
import matplotlib.pyplot as plt
###%matplotlib inline #jupyter可以用,這樣就不用plt.show()
#生成數(shù)據(jù)
x = np.linspace(0, 4*np.pi)
y = np.sin(x)
#設(shè)置rc參數(shù)顯示中文標(biāo)題
#設(shè)置字體為SimHei顯示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#設(shè)置正常顯示字符
plt.rcParams['axes.unicode_minus'] = False
plt.title('sin曲線')
#設(shè)置線條樣式
plt.rcParams['lines.linestyle'] = '-.'
#設(shè)置線條寬度
plt.rcParams['lines.linewidth'] = 3
#繪制sin曲線
plt.plot(x, y, label='$sin(x)$')
plt.savefig('sin.png')
plt.show()

參數(shù):
plt.rcParams['savefig.dpi'] = 300 #圖片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.savefig(‘plot123_2.png', dpi=200)#指定分辨率
# 默認(rèn)的像素:[6.0,4.0],分辨率為100,圖片尺寸為 600&400
# 指定dpi=200,圖片尺寸為 1200*800
# 指定dpi=300,圖片尺寸為 1800*1200
plt.rcParams['figure.figsize'] = (8.0, 4.0) # 圖像顯示大小
plt.rcParams['image.interpolation'] = 'nearest' # 最近鄰差值: 像素為正方形
#Interpolation/resampling即插值,是一種圖像處理方法,它可以為數(shù)碼圖像增加或減少象素的數(shù)目。
plt.rcParams['image.cmap'] = 'gray' # 使用灰度輸出而不是彩色輸出
plt.axis('off') #打印圖片的時(shí)候不顯示坐標(biāo)軸
from:http://www.fzitv.net/article/203481.htm
更詳細(xì)的配置參見:https://my.oschina.net/swuly302/blog/94805
2、matshow函數(shù)
這是一個(gè)繪制矩陣的函數(shù):matplotlib.pyplot.matshow(A, fignum=None, **kwargs)
A是繪制的矩陣,一個(gè)矩陣元素對(duì)應(yīng)一個(gè)圖像像素。
例如:plt.matshow(Mat, cmap=plt.cm.gray),cmap代表一種顏色映射方式。

實(shí)例:
plt.plot(A, "r-+", linewidth=2, label="train")
plt.plot(B, "b-", linewidth=3, label="val")
plt.legend(loc="upper right", fontsize=14) # 設(shè)置位置
plt.xlabel("Training set size", fontsize=14) # 標(biāo)簽
plt.ylabel("RMSE", fontsize=14)
plt.axis([0, 80, 0, 3])#表示要顯示圖形的范圍
plt.xticks(np.arange(0, 81, step=20))#設(shè)置刻度
plt.yticks(np.arange(0, 4, step=1))

Axes - Subplot - Axis 之間到底是個(gè)什么關(guān)系
用matplotlib.pyplot繪圖需要知道以下幾個(gè)概念:
- 畫圖板/畫布:這是一個(gè)基礎(chǔ)載體,類似實(shí)際的畫圖板,用pyplot.figure()函數(shù)創(chuàng)建,程序中允許創(chuàng)建多個(gè)畫圖板,具體操作的畫板遵循就近原則(操作是在最近一次調(diào)用的畫圖板上實(shí)現(xiàn)),缺省條件下內(nèi)部默認(rèn)調(diào)用pyplot.figure(1)。
- 圖形區(qū)/繪圖區(qū):用來繪圖的實(shí)際區(qū)域,一般不直接獲取,直接設(shè)定方式為pyplot.axes([x, y, w, h]),即axes函數(shù)直接確定了該區(qū)域在畫圖板/畫布中的位置為x,y 尺寸為w,h
- 標(biāo)簽區(qū):用來展示圖形相關(guān)標(biāo)簽的地方,一般不直接設(shè)定(未仔細(xì)研究過),該區(qū)域根據(jù)圖形區(qū)進(jìn)行擴(kuò)展,與該區(qū)域有關(guān)聯(lián)的函數(shù)是pyplot.xlabel()、pyplot.ylabel()、pyplot.title()等
fig = plt.figure() plt.show() ax1 = fig.add_subplot(211) ax2 = fig.add_subplot(212)
用畫板和畫紙來做比喻的話,figure就好像是畫板,是畫紙的載體, 但是具體畫畫等操作是在畫紙上完成的。 在pyplot中,畫紙的概念對(duì)應(yīng)的就是Axes/Subplot。

對(duì)比:
figure (1) VS figure()
figure()操作就是創(chuàng)建或者調(diào)用畫圖板,缺省情況下系統(tǒng)會(huì)創(chuàng)建figure(1)作為畫圖板。使用時(shí)遵循就近原則,所有畫圖操作是在最近一次調(diào)用的畫圖板上實(shí)現(xiàn)。
axes() VS subplot()
pyplot.axes([x, y, w, h])是用來在畫圖板上確認(rèn)圖形區(qū)的位置和大小的函數(shù),x,y表示圖形區(qū)左下角相對(duì)于畫圖板的坐標(biāo),w,h表示圖形區(qū)的寬高。(缺省時(shí)該操作在figure(1)上操作)
pyplot.subplot(abc)本質(zhì)也是用來確認(rèn)圖形區(qū)在畫圖板上位置大小的函數(shù),區(qū)別是該函數(shù)將畫圖板按a行b列等分,然后逐行編號(hào),并選擇編號(hào)為c的區(qū)域作為圖形區(qū)用來繪圖。這是一個(gè)axes()操作的高級(jí)封裝,方便用戶使用。subplot(233)表示2行3列的第3個(gè)位置(即,第1行第三個(gè)區(qū)域)
同時(shí),pyplot.show()實(shí)際展示的區(qū)域是畫圖板上所有圖形區(qū)的最小包圍區(qū),不是整個(gè)畫圖板,即如果僅僅調(diào)用了subplot(224)結(jié)果只展示右下角的4號(hào)區(qū)域,而不是1、2、3、4都展示,因此會(huì)存在一定的錯(cuò)覺。
axes() VS axis()
axes([x, y, w, h])用來設(shè)定圖形區(qū);
axis([x_left, x_right, y_bottom, y_top])是用來設(shè)置所繪制圖形的視窗大小的,表示直接展示的圖形是需要滿足參數(shù)中范圍的值,直觀表現(xiàn)是繪圖區(qū)實(shí)際展示的坐標(biāo)范圍。
注:axis作用的圖形區(qū)依舊遵守就近原則。
subplot() VS plot()
subplot用來生成圖形區(qū);
plot是實(shí)際使用的繪圖函數(shù),類似的函數(shù)還有hist等,plot操作遵守就近原則,即作用在最近一次使用的圖形區(qū)上。
官網(wǎng):https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html
到此這篇關(guān)于matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標(biāo)軸設(shè)置)的文章就介紹到這了,更多相關(guān)matplotlib plt.rcParams、matshow內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django框架請(qǐng)求生命周期實(shí)現(xiàn)原理
這篇文章主要介紹了Django框架請(qǐng)求生命周期實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python的pandas工具包,保存.csv文件時(shí)不要表頭的實(shí)例
今天小編小編就為大家分享一篇python的pandas工具包,保存.csv文件時(shí)不要表頭的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置圖文教程
PyCharm是一種Python的集成開發(fā)環(huán)境,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高效率的工具,這篇文章主要介紹了集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置,需要的朋友可以參考下2022-07-07
pyodps中的apply用法及groupby取分組排序第一條數(shù)據(jù)
這篇文章主要介紹了pyodps中的apply用法及groupby取分組排序第一條數(shù)據(jù),問綻放圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下2022-05-05
解決python中 f.write寫入中文出錯(cuò)的問題
今天小編就為大家分享一篇解決python中 f.write寫入中文出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10

