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

代碼:
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ù)顯示中文標題
#設(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)#指定分辨率
# 默認的像素:[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') #打印圖片的時候不顯示坐標軸
from:http://www.dbjr.com.cn/article/203481.htm
更詳細的配置參見:https://my.oschina.net/swuly302/blog/94805
2、matshow函數(shù)
這是一個繪制矩陣的函數(shù):matplotlib.pyplot.matshow(A, fignum=None, **kwargs)
A是繪制的矩陣,一個矩陣元素對應(yīng)一個圖像像素。
例如:plt.matshow(Mat, cmap=plt.cm.gray),cmap代表一種顏色映射方式。

實例:
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) # 標簽
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 之間到底是個什么關(guān)系
用matplotlib.pyplot繪圖需要知道以下幾個概念:
- 畫圖板/畫布:這是一個基礎(chǔ)載體,類似實際的畫圖板,用pyplot.figure()函數(shù)創(chuàng)建,程序中允許創(chuàng)建多個畫圖板,具體操作的畫板遵循就近原則(操作是在最近一次調(diào)用的畫圖板上實現(xiàn)),缺省條件下內(nèi)部默認調(diào)用pyplot.figure(1)。
- 圖形區(qū)/繪圖區(qū):用來繪圖的實際區(qū)域,一般不直接獲取,直接設(shè)定方式為pyplot.axes([x, y, w, h]),即axes函數(shù)直接確定了該區(qū)域在畫圖板/畫布中的位置為x,y 尺寸為w,h
- 標簽區(qū):用來展示圖形相關(guān)標簽的地方,一般不直接設(shè)定(未仔細研究過),該區(qū)域根據(jù)圖形區(qū)進行擴展,與該區(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中,畫紙的概念對應(yīng)的就是Axes/Subplot。

對比:
figure (1) VS figure()
figure()操作就是創(chuàng)建或者調(diào)用畫圖板,缺省情況下系統(tǒng)會創(chuàng)建figure(1)作為畫圖板。使用時遵循就近原則,所有畫圖操作是在最近一次調(diào)用的畫圖板上實現(xiàn)。
axes() VS subplot()
pyplot.axes([x, y, w, h])是用來在畫圖板上確認圖形區(qū)的位置和大小的函數(shù),x,y表示圖形區(qū)左下角相對于畫圖板的坐標,w,h表示圖形區(qū)的寬高。(缺省時該操作在figure(1)上操作)
pyplot.subplot(abc)本質(zhì)也是用來確認圖形區(qū)在畫圖板上位置大小的函數(shù),區(qū)別是該函數(shù)將畫圖板按a行b列等分,然后逐行編號,并選擇編號為c的區(qū)域作為圖形區(qū)用來繪圖。這是一個axes()操作的高級封裝,方便用戶使用。subplot(233)表示2行3列的第3個位置(即,第1行第三個區(qū)域)
同時,pyplot.show()實際展示的區(qū)域是畫圖板上所有圖形區(qū)的最小包圍區(qū),不是整個畫圖板,即如果僅僅調(diào)用了subplot(224)結(jié)果只展示右下角的4號區(qū)域,而不是1、2、3、4都展示,因此會存在一定的錯覺。
axes() VS axis()
axes([x, y, w, h])用來設(shè)定圖形區(qū);
axis([x_left, x_right, y_bottom, y_top])是用來設(shè)置所繪制圖形的視窗大小的,表示直接展示的圖形是需要滿足參數(shù)中范圍的值,直觀表現(xiàn)是繪圖區(qū)實際展示的坐標范圍。
注:axis作用的圖形區(qū)依舊遵守就近原則。
subplot() VS plot()
subplot用來生成圖形區(qū);
plot是實際使用的繪圖函數(shù),類似的函數(shù)還有hist等,plot操作遵守就近原則,即作用在最近一次使用的圖形區(qū)上。
官網(wǎng):https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html
到此這篇關(guān)于matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設(shè)置)的文章就介紹到這了,更多相關(guān)matplotlib plt.rcParams、matshow內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Pygame實戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)
《憤怒的小鳥》其實活得還不錯,盡管我們一直在嘲笑它的IP帝國夢做得太大。但要知道,把休閑益智游戲的生意做到這個份上的,恐怕也就獨此一家了。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下2022-04-04
Pandas探索之高性能函數(shù)eval和query解析
這篇文章主要介紹了Pandas探索之高性能函數(shù)eval和query解析,小編覺得還是挺不錯的,這里分享給大家,供需要的朋友參考。2017-10-10
Python讀取Pickle文件信息并計算與當(dāng)前時間間隔的方法分析
這篇文章主要介紹了Python讀取Pickle文件信息并計算與當(dāng)前時間間隔的方法,涉及Python基于pickle模塊操作文件屬性相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-01-01
python繪制BA無標度網(wǎng)絡(luò)示例代碼
今天小編就為大家分享一篇python繪制BA無標度網(wǎng)絡(luò)示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python+Selenium實現(xiàn)瀏覽器的控制操作
這篇文章主要為大家詳細介紹了Python+Selenium如何實現(xiàn)常見的瀏覽器控制操作,例如:瀏覽器參數(shù)設(shè)置、控制瀏覽器前進/后退等,感興趣的可以了解一下2022-09-09
python獲得linux下所有掛載點(mount points)的方法
這篇文章主要介紹了python獲得linux下所有掛載點(mount points)的方法,涉及Python操作Linux下掛載點的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04

