matplotlib設置坐標軸標簽和間距的實現

我們今天繼續matplotlib作圖教程。

在上周的文章當中我們介紹瞭如何通過xlabel和ylabel設置坐標軸的名稱,以及這兩個函數的花式設置方法,可以設置出各種各樣的名稱顯示方法。今天我們來介紹介紹其他的設置。

xlim、ylim

我們首先來介紹坐標軸的范圍,坐標軸的范圍很好理解,有的時候我們產出的數據的范圍可能並不是完全我們想要的。如果我們不對坐標軸的范圍進行設置的話,那麼matplotlib默認會按照我們數據的范圍來自動選擇它認為最合適的區間來展示所有的數據。

舉一個很簡單的例子,假設我們想要在-10到10的區間裡畫一張拋物線的圖像。這個圖像的繪制方法我想大傢應該都已經非常熟悉瞭:

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

解決的辦法也很簡單,就是再設置ylim的范圍,將ylim的范圍也設置到剛好可以比較合適地展示數據。比如在這個例子當中,ylim設置成[0, 30]或者是[-5, 25]都非常合適。

關於xlim和ylim官方還提供一些其他的參數,大傢感興趣可以查閱相關文檔,建議大傢沒必要浪費這個時間,因為實在是用不到。甚至連用到xlim和ylim的情況都不多。

xticks、yticks

如果說前面xlim和ylim看起來有一種好像有點用,但是又不知道什麼時候能用上的話,那麼這一段要介紹的xtick和ytick就屬於非常有用,不容錯過的那種。這也不是我吹,因為和這兩個函數比起來前面介紹的xlim和ylim真的就隻是個弟弟。

xlim能夠設置的基本上隻有坐標軸的范圍,而xticks和yticks既可以設置范圍也可以設置每個刻度之間的間距。還用剛才拋物線的例子舉例,在剛才的例子當中,我們x軸的范圍是[-10, 10]。在默認的圖像當中,系統幫我們選擇的間距是2.5,即每隔2.5畫一個坐標點,一共畫8個。

而通過xticks我們可以自己設置坐標點的間隔以及數量,比如假設我們想要x軸每間隔5畫一個坐標點,我們可以這麼來設置:

我們直接在xticks當中放入瞭一個list,最後我們畫出來的圖像的x軸就是根據這個list進行劃分的。也就是說我們不僅可以定義坐標軸的范圍,還可以定義它的間隔。有的時候,自動繪制出來的圖像的范圍以及間隔可能沒有那麼好,需要我們進行調整,這時候就需要用到xticks和yticks函數瞭。

除瞭設置間隔和范圍之外,xticks還可以設置標簽以及標簽的旋轉角度。我們同樣來看一個例子,在這個例子當中,我們會把上圖當中x軸的數字轉成英文單詞,並且將這些單詞旋轉30度。

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

現在如果老板讓你去做一張月度數據報表,你應該知道怎麼做瞭吧?可以不用再用Excel瞭,用matplotlib幾行代碼就搞定瞭。這也是現在各大培訓班廣告裡吹噓的內容,你看我已經免費教給你瞭。

總結

我們簡單回顧一下今天介紹的內容,一個是用來限制坐標軸范圍的xlim和ylim,另外一個是可以自定義整個坐標軸間隔以及范圍,甚至還可以更換名稱的xticks、yticks。從表面上來看xlim能做的事情xticks也都可以實現,但實際上這兩者的應用場景其實是不同的,xlim的使用場景是當我們想要放大或者縮小圖像的時候,使用xlim隻需要傳入上下界,而如果使用xticks則還需要指定間隔、生成一個list才可以,其實是有些冗餘的操作。

所以這兩者的應用有重疊的部分,但是應用場景其實還是不一樣的。當然如果你想要偷懶隻想學一個的話,那麼xticks的確已經足夠瞭。

推薦閱讀: