我們今天繼續(xù)matplotlib作圖教程。
在上周的文章當(dāng)中我們介紹了如何通過(guò)xlabel和ylabel設(shè)置坐標(biāo)軸的名稱,以及這兩個(gè)函數(shù)的花式設(shè)置方法,可以設(shè)置出各種各樣的名稱顯示方法。今天我們來(lái)介紹介紹其他的設(shè)置。
xlim、ylim
我們首先來(lái)介紹坐標(biāo)軸的范圍,坐標(biāo)軸的范圍很好理解,有的時(shí)候我們產(chǎn)出的數(shù)據(jù)的范圍可能并不是完全我們想要的。如果我們不對(duì)坐標(biāo)軸的范圍進(jìn)行設(shè)置的話,那么matplotlib默認(rèn)會(huì)按照我們數(shù)據(jù)的范圍來(lái)自動(dòng)選擇它認(rèn)為最合適的區(qū)間來(lái)展示所有的數(shù)據(jù)。
舉一個(gè)很簡(jiǎn)單的例子,假設(shè)我們想要在-10到10的區(qū)間里畫一張拋物線的圖像。這個(gè)圖像的繪制方法我想大家應(yīng)該都已經(jīng)非常熟悉了:

由于x的范圍是-10到10,那么y對(duì)應(yīng)的范圍應(yīng)該就是[0, 100]。這些應(yīng)該都不難理解,但是假如我們雖然數(shù)據(jù)非常全面是[-10, 10]這個(gè)范圍內(nèi)的,但是我們僅僅想要展示[-3, 3]這個(gè)區(qū)間,那應(yīng)該怎么辦?這個(gè)時(shí)候我們就可以使用xlim這個(gè)函數(shù)來(lái)設(shè)置x軸的范圍,但是需要注意的是,我們?cè)谡{(diào)用xlim的時(shí)候只是限制了x軸的結(jié)果,并沒(méi)有限制y軸。所以畫出來(lái)y軸的范圍還是之前數(shù)據(jù)的范圍,這樣看起來(lái)會(huì)顯得有一點(diǎn)奇怪,圖像會(huì)是這樣的:

解決的辦法也很簡(jiǎn)單,就是再設(shè)置ylim的范圍,將ylim的范圍也設(shè)置到剛好可以比較合適地展示數(shù)據(jù)。比如在這個(gè)例子當(dāng)中,ylim設(shè)置成[0, 30]或者是[-5, 25]都非常合適。
關(guān)于xlim和ylim官方還提供一些其他的參數(shù),大家感興趣可以查閱相關(guān)文檔,建議大家沒(méi)必要浪費(fèi)這個(gè)時(shí)間,因?yàn)閷?shí)在是用不到。甚至連用到xlim和ylim的情況都不多。
xticks、yticks
如果說(shuō)前面xlim和ylim看起來(lái)有一種好像有點(diǎn)用,但是又不知道什么時(shí)候能用上的話,那么這一段要介紹的xtick和ytick就屬于非常有用,不容錯(cuò)過(guò)的那種。這也不是我吹,因?yàn)楹瓦@兩個(gè)函數(shù)比起來(lái)前面介紹的xlim和ylim真的就只是個(gè)弟弟。
xlim能夠設(shè)置的基本上只有坐標(biāo)軸的范圍,而xticks和yticks既可以設(shè)置范圍也可以設(shè)置每個(gè)刻度之間的間距。還用剛才拋物線的例子舉例,在剛才的例子當(dāng)中,我們x軸的范圍是[-10, 10]。在默認(rèn)的圖像當(dāng)中,系統(tǒng)幫我們選擇的間距是2.5,即每隔2.5畫一個(gè)坐標(biāo)點(diǎn),一共畫8個(gè)。
而通過(guò)xticks我們可以自己設(shè)置坐標(biāo)點(diǎn)的間隔以及數(shù)量,比如假設(shè)我們想要x軸每間隔5畫一個(gè)坐標(biāo)點(diǎn),我們可以這么來(lái)設(shè)置:

我們直接在xticks當(dāng)中放入了一個(gè)list,最后我們畫出來(lái)的圖像的x軸就是根據(jù)這個(gè)list進(jìn)行劃分的。也就是說(shuō)我們不僅可以定義坐標(biāo)軸的范圍,還可以定義它的間隔。有的時(shí)候,自動(dòng)繪制出來(lái)的圖像的范圍以及間隔可能沒(méi)有那么好,需要我們進(jìn)行調(diào)整,這時(shí)候就需要用到xticks和yticks函數(shù)了。
除了設(shè)置間隔和范圍之外,xticks還可以設(shè)置標(biāo)簽以及標(biāo)簽的旋轉(zhuǎn)角度。我們同樣來(lái)看一個(gè)例子,在這個(gè)例子當(dāng)中,我們會(huì)把上圖當(dāng)中x軸的數(shù)字轉(zhuǎn)成英文單詞,并且將這些單詞旋轉(zhuǎn)30度。

我們生活當(dāng)中經(jīng)常看到的一種圖表就是某公司的業(yè)績(jī)銷售表,或者是增長(zhǎng)曲線表。這種表都有一個(gè)特點(diǎn),就是它的x軸是月份,這樣我們就可以很清楚地看到每個(gè)月的銷售數(shù)據(jù),可以對(duì)未來(lái)進(jìn)行預(yù)期以及指引。在沒(méi)有學(xué)會(huì)xticks函數(shù)用法之前,可能會(huì)覺(jué)得這是非常不容易的一件事,但有了xticks之后其實(shí)非常地簡(jiǎn)單:

現(xiàn)在如果老板讓你去做一張?jiān)露葦?shù)據(jù)報(bào)表,你應(yīng)該知道怎么做了吧?可以不用再用Excel了,用matplotlib幾行代碼就搞定了。這也是現(xiàn)在各大培訓(xùn)班廣告里吹噓的內(nèi)容,你看我已經(jīng)免費(fèi)教給你了。
總結(jié)
我們簡(jiǎn)單回顧一下今天介紹的內(nèi)容,一個(gè)是用來(lái)限制坐標(biāo)軸范圍的xlim和ylim,另外一個(gè)是可以自定義整個(gè)坐標(biāo)軸間隔以及范圍,甚至還可以更換名稱的xticks、yticks。從表面上來(lái)看xlim能做的事情xticks也都可以實(shí)現(xiàn),但實(shí)際上這兩者的應(yīng)用場(chǎng)景其實(shí)是不同的,xlim的使用場(chǎng)景是當(dāng)我們想要放大或者縮小圖像的時(shí)候,使用xlim只需要傳入上下界,而如果使用xticks則還需要指定間隔、生成一個(gè)list才可以,其實(shí)是有些冗余的操作。
所以這兩者的應(yīng)用有重疊的部分,但是應(yīng)用場(chǎng)景其實(shí)還是不一樣的。當(dāng)然如果你想要偷懶只想學(xué)一個(gè)的話,那么xticks的確已經(jīng)足夠了。
原文鏈接:https://www.cnblogs.com/techflow/p/13818748.html