作圖-線性坐標與對數坐標


線性坐標在顯示有較大區值范圍的\(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')


圖三,對數函數在雙對數坐標下的圖像。

參考:

  1. https://matplotlib.org/api/_as_gen/matplotlib.pyplot.xscale.html#matplotlib.pyplot.xscale
  2. https://zhuanlan.zhihu.com/p/43673909


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM