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

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

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

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

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

現(xiàn)在如果老板讓你去做一張月度數(shù)據(jù)報表,你應該知道怎么做了吧?可以不用再用Excel了,用matplotlib幾行代碼就搞定了。這也是現(xiàn)在各大培訓班廣告里吹噓的內容,你看我已經免費教給你了。
總結
我們簡單回顧一下今天介紹的內容,一個是用來限制坐標軸范圍的xlim和ylim,另外一個是可以自定義整個坐標軸間隔以及范圍,甚至還可以更換名稱的xticks、yticks。從表面上來看xlim能做的事情xticks也都可以實現(xiàn),但實際上這兩者的應用場景其實是不同的,xlim的使用場景是當我們想要放大或者縮小圖像的時候,使用xlim只需要傳入上下界,而如果使用xticks則還需要指定間隔、生成一個list才可以,其實是有些冗余的操作。
所以這兩者的應用有重疊的部分,但是應用場景其實還是不一樣的。當然如果你想要偷懶只想學一個的話,那么xticks的確已經足夠了。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信