Matplotlib格式化軸


有時候一個或幾個點比大量資料大得多。在這種情況下,軸的比例需要設定為對數(log)而不是正常比例。這是對數標度。在Matplotlib中,可以通過將axes物件的xscalevscale屬性設定為log

有時還需要在軸編號和軸標籤之間顯示一些額外的距離。任一軸(xy或兩者)的labelpad屬性都可以設定為所需的值。

在以下範例的幫助下演示了上述兩個功能。右邊的子圖具有對數刻度,左邊的一個子圖的x軸具有更遠距離的標籤。

參考以下範例程式碼:

#! /usr/bin/env python
#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math

# 顯示中文設定...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字型)
plt.rcParams['axes.unicode_minus'] = False   # 步驟二(解決坐標軸負數的負號顯示問題)原文出自【易百教學】,商業轉載請聯絡作者獲得授權,非商業請保留原文連結:https://www.tw511.com/matplotlib/

fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("正常比例")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_yscale("log")
axes[1].set_title("對數刻度(y)")
axes[0].set_xlabel("x 軸")
axes[0].set_ylabel("y 軸")
axes[0].xaxis.labelpad = 10
axes[1].set_xlabel("x 軸")
axes[1].set_ylabel("y 軸")
plt.show()

執行上面範例程式碼,得到以下結果 -

軸尖端是連線軸刻度線的線,劃分繪圖區域的邊界。軸物件的尖端位於頂部,底部,左側和右側。
每個尖端可以通過指定顏色和寬度進行格式化。如果任何邊緣的顏色設定為無,則可以使其不可見。

參考範例程式碼:

#! /usr/bin/env python
#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math

# 顯示中文設定...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字型)
plt.rcParams['axes.unicode_minus'] = False   # 步驟二(解決坐標軸負數的負號顯示問題)原文出自【易百教學】,商業轉載請聯絡作者獲得授權,非商業請保留原文連結:https://www.tw511.com/matplotlib/

fig = plt.figure()
ax=plt.subplot(111)
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.plot([1,2,3,4,5])
plt.show()#