線性坐標在顯示有較大區值范圍的\(x\)和\(y\)時(\(x\)和\(y\)的取值范圍有很大尺度的差異)不能很清楚地將兩者的對應關系表現出來。對於函數\(y=log_{10}x, x\in[1, 100000]\)在線性坐標下如圖一所示。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 100000)
y = np.log10(x)
plt.plot(
x,
y,
color='k',
lw=2)
plt.title('Linear')
plt.xlabel('x')
plt.ylabel('log(x)')
圖一,對數函數在線性坐標下的圖像。
很顯然,對於\(x<1000\)對應的\(y\)是無法通過圖來很清楚地確定的。通過對\(x\)進行對數轉換則可以更加清楚地表示出\(x\)與\(y\)的關系。圖二即為上述公式在對數坐標下的圖形。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 100000)
y = np.log10(x)
plt.plot(
x,
y,
color='k',
lw=2)
plt.title('x-log')
plt.xlabel('x')
plt.ylabel('log(x)')
plt.xscale('log')
圖二,對數函數在對\(x\)軸進行對數轉換后的圖像。
而當對\(x\)和\(y\)同時進行對數轉換之后,相應的圖形展示為圖三。因此通常只需要將范圍尺度較大的變量進行對數變換即可。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 100000)
y = np.log10(x)
plt.plot(
x,
y,
color='k',
lw=2)
plt.title('xy-log')
plt.xlabel('x')
plt.ylabel('log(x)')
plt.xscale('log')
plt.yscale('log')
圖三,對數函數在雙對數坐標下的圖像。
參考: