matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標(biāo)軸設(shè)置)
1、plt.rcParams
plt(matplotlib.pyplot)使用rc配置文件來(lái)自定義圖形的各種默認(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.dbjr.com.cn/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ū):用來(lái)繪圖的實(shí)際區(qū)域,一般不直接獲取,直接設(shè)定方式為pyplot.axes([x, y, w, h]),即axes函數(shù)直接確定了該區(qū)域在畫圖板/畫布中的位置為x,y 尺寸為w,h
- 標(biāo)簽區(qū):用來(lái)展示圖形相關(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)
用畫板和畫紙來(lái)做比喻的話,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])是用來(lái)在畫圖板上確認(rèn)圖形區(qū)的位置和大小的函數(shù),x,y表示圖形區(qū)左下角相對(duì)于畫圖板的坐標(biāo),w,h表示圖形區(qū)的寬高。(缺省時(shí)該操作在figure(1)上操作)
pyplot.subplot(abc)本質(zhì)也是用來(lái)確認(rèn)圖形區(qū)在畫圖板上位置大小的函數(shù),區(qū)別是該函數(shù)將畫圖板按a行b列等分,然后逐行編號(hào),并選擇編號(hào)為c的區(qū)域作為圖形區(qū)用來(lái)繪圖。這是一個(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])用來(lái)設(shè)定圖形區(qū);
axis([x_left, x_right, y_bottom, y_top])是用來(lái)設(shè)置所繪制圖形的視窗大小的,表示直接展示的圖形是需要滿足參數(shù)中范圍的值,直觀表現(xiàn)是繪圖區(qū)實(shí)際展示的坐標(biāo)范圍。
注:axis作用的圖形區(qū)依舊遵守就近原則。
subplot() VS plot()
subplot用來(lái)生成圖形區(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)文章
Python Pygame實(shí)戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)
《憤怒的小鳥》其實(shí)活得還不錯(cuò),盡管我們一直在嘲笑它的IP帝國(guó)夢(mèng)做得太大。但要知道,把休閑益智游戲的生意做到這個(gè)份上的,恐怕也就獨(dú)此一家了。本文將利用Pygame實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-04-04Pandas探索之高性能函數(shù)eval和query解析
這篇文章主要介紹了Pandas探索之高性能函數(shù)eval和query解析,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10PyCharm中如何直接使用Anaconda已安裝的庫(kù)
這篇文章主要介紹了PyCharm中如何直接使用Anaconda已安裝的庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Python讀取Pickle文件信息并計(jì)算與當(dāng)前時(shí)間間隔的方法分析
這篇文章主要介紹了Python讀取Pickle文件信息并計(jì)算與當(dāng)前時(shí)間間隔的方法,涉及Python基于pickle模塊操作文件屬性相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01python繪制BA無(wú)標(biāo)度網(wǎng)絡(luò)示例代碼
今天小編就為大家分享一篇python繪制BA無(wú)標(biāo)度網(wǎng)絡(luò)示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-11-11Python中驚艷的一行代碼簡(jiǎn)潔強(qiáng)大表達(dá)力技巧實(shí)例
在Python中,語(yǔ)言的設(shè)計(jì)理念之一是簡(jiǎn)潔優(yōu)雅,這使得我們能夠用一行代碼完成一些令人驚嘆的任務(wù),本文將分享一些在一行代碼中展現(xiàn)出Python強(qiáng)大表達(dá)力的示例,涵蓋各種領(lǐng)域的實(shí)用技巧2024-01-01Python+Selenium實(shí)現(xiàn)瀏覽器的控制操作
這篇文章主要為大家詳細(xì)介紹了Python+Selenium如何實(shí)現(xiàn)常見的瀏覽器控制操作,例如:瀏覽器參數(shù)設(shè)置、控制瀏覽器前進(jìn)/后退等,感興趣的可以了解一下2022-09-09python獲得linux下所有掛載點(diǎn)(mount points)的方法
這篇文章主要介紹了python獲得linux下所有掛載點(diǎn)(mount points)的方法,涉及Python操作Linux下掛載點(diǎn)的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04