Matplotlib中調整坐標軸的比例
Matplotlib中,可以調整坐標軸x和y之間的相對比例。每個坐標軸坐標軸也可以按照一定方式縮放。除了等比例,也可以按對數方式縮放,這在很多時候都非常有用。特別是變數之間呈現指數或者冪的關係時,這樣反而更容易看出來。
這次我們討論如何利用pyplot中的函數實現相應的效果。
函數axis
首先我們來看函數axis對應的參數,以及參數的效果。axis函數整體來說,主要影響坐標軸的行為。比方說下圖第一幅子圖,使用了off這個參數。
axis(off)
其作用就是阻止顯示坐標軸,只有曲線。其他一些參數都在下圖的標題當中,大家可以對應文檔和下圖的效果選擇合適的參數。比方參數square就是形成一幅方圖。
設定坐標軸以對數方式收縮
如果我們猜測變數 和 之間滿足如下關係: 。
那麼為了驗證這一點,通常我們對函數兩邊取對數那麼就有: 。所以如果對數據y取對數的話,我們看到的就是一條直線。這反映了數量之間的指數關係。
那麼實現方法對y取對數方法有三種:
- 自行對y取log,然後用plot畫圖;
- 利用函數semilogy畫圖,相應需要對x取log畫圖,有另外一個函數semilogx;
- 利用pyplot中的yscale(xscale)對相應的變數取log。
下面這段代碼就是對上述函數的三種不同畫法。即:
- 原始函數 ;
- 利用semilogy
- 利用yscale(log)
代碼和結果如下。
from pylab import *figure(figsize=(3,9))x=linspace(0,5,11)y=exp(x)subplot(3,1,1)title(r$y=e^{x}$)plot(x,y,b-x)subplot(3,1,2)title(semilogy)semilogy(x,y)subplot(3,1,3)title("yscale(log)")yscale(log)plot(x,y)show()
同樣,如果遇到變數之間為冪函數的關係,例如 。那麼我們可以分別對公式兩邊去對數得 那麼可以利用loglog函數或者xscale和yscale來實現。過程類似以上的內容,這裡只插入代碼和結果。
from pylab import *figure(figsize=(3,10))x=linspace(0,5,11)y=x**2subplot(3,1,1)title(r$y=x^2$)plot(x,y,b-x)subplot(3,1,2)title(loglog)loglog(x,y)subplot(3,1,3)title("xscale(log),yscale(log)")yscale(log)xscale(log)plot(x,y)show()
推薦閱讀:
※Matplotlib 可視化系列一
※matplotlib.pyplot.imshow如何顯示灰度圖?
※matplotlib & visdom 的圖片顯示問題
※基於matplotlib的2D/3D抽象網格和能量曲線繪製程序
※python matplotlib中axes與axis的區別?
TAG:Matplotlib | numpy | 數據分析 |