天天看點

matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

本文隻要講述繪圖中軸的相關設定

  1. 設定軸的範圍 setting limits
  2. 設定軸的刻度 setting ticks
  3. 設定軸刻度的标記 setting tick labels
  4. 将x,y軸居中
  5. 設定x, y軸的label
x = np.linspace(-np.pi, np.pi, 128,endpoint=True)
cosx,sinx,x_3 = np.cos(x), np.sin(x), x / 3
           

1. 設定軸的範圍

matplotlib.pyplot.xlim(*args, **kwargs)

matplotlib.pyplot.ylim(*args, **kwargs)

參數傳遞:

  • xlim((xmin, xmax))

  • xlim(xmin, xmax)

  • xlim(xmin=xmin, xmax=xmax)

個人推薦使用axes.set_xlim(), 顯然是對于每一個axes設定軸屬性,用法與上述相同

在使用關鍵字參數時,可以隻指定一個值,而保持另一個值使用預設值

fig = plt.figure(1)
axes0 = plt.subplot(111)
line1, line2 = axes0.plot(x, cosx, 'w',x, x_3, 'c')

line1.set_linewidth(2.5)
line2.set_linewidth(1)
# plt.xlim(x.min() *2, x.max()*2)
axes0.set_xlim(x.min() *2, x.max()*2)
axes0.set_ylim(cosx.min() * 1.5, cosx.max() * 1.5)
plt.show()

           
matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

2. 設定刻度 setting ticks

matplotlib.pyplot.xticks(*args, **kwargs)

matplotlib.pyplot.yticks(*args, **kwargs)

Tick containers

Tick containers

fig = plt.figure(1)
axes0 = plt.subplot(111)
line1, line2 = axes0.plot(x, cosx, 'w',x, x_3, 'c')

line1.set_linewidth(2.5)
line2.set_linewidth(1)
# plt.xlim(x.min() *2, x.max()*2)
axes0.set_xlim(x.min() *1.2, x.max()*1.2)
axes0.set_ylim(cosx.min() * 1.2, cosx.max() * 1.2)

axes0.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
axes0.set_yticks([-1, 0, 1])
plt.show()
           
matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

3. 設定tick labels

  1. 可以使用

    plt.xticks(tick, label)

    , 也可以使用

    axes.set_xticklabels(label)

    ,

推薦使用後者

label的長度與tick相同,并且是可索引對象

matplotlib.axes.Axes.set_xticklabels

2. 可以通過使用

r'$math$

的形式使用markdown math公式

text

fig = plt.figure(1)
axes0 = plt.subplot(111)
line1, line2 = axes0.plot(x, cosx, 'w',x, x_3, 'c')

line1.set_linewidth(2.5)
line2.set_linewidth(1)
# plt.xlim(x.min() *2, x.max()*2)
axes0.set_xlim(x.min() *1.2, x.max()*1.2)
axes0.set_ylim(cosx.min() * 1.2, cosx.max() * 1.2)

axes0.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
axes0.set_xticklabels([r'$-\pi$', r'$-\frac{\pi}{2}$', 0,  r'$+\frac{\pi}{2}$', r'$+\pi$'])
axes0.set_yticks([-1, 0, 1])
axes0.set_yticklabels([r'-1', r'0', r'+1'])
plt.show()
           
matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

4. 設定x,yz軸居中 spines

spine

axes有4個邊界,上,下,左,右;将上和有的邊界顔色設為無色,然後将x軸設為下邊界,将x軸資料标記‘0’,同理對左邊界做相同處理。

set_position(position)

fig = plt.figure(1)
axes0 = plt.subplot(111)
line1, line2 = axes0.plot(x, cosx, 'w',x, x_3, 'c')

line1.set_linewidth(2.5)
line2.set_linewidth(1)
# plt.xlim(x.min() *2, x.max()*2)
axes0.set_xlim(x.min() *1.2, x.max()*1.2)
axes0.set_ylim(cosx.min() * 1.2, cosx.max() * 1.2)

axes0.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
axes0.set_xticklabels([r'$-\pi$', r'$-\frac{\pi}{2}$', 0,  r'$+\frac{\pi}{2}$', r'$+\pi$'])
axes0.set_yticks([-1, 0, 1])
axes0.set_yticklabels([r'-1', r'0', r'+1'])

# 居中xy軸
axes0.spines['right'].set_color('none')
axes0.spines['top'].set_color('none')
axes0.xaxis.set_ticks_position('bottom')
axes0.spines['bottom'].set_position(('data',0))
axes0.yaxis.set_ticks_position('left')
axes0.spines['left'].set_position(('data',0))

plt.show()
           
matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

一下代碼将倒數第二行代碼

axes0.spines['left'].set_position(('data',0))

改為

axes0.spines['left'].set_position(('data',np.pi))

下列為繪制的圖形:

matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

5. 設定x,y軸的label

axes.set_xlabel()

axes.set_ylabel()

fig = plt.figure(1)
axes0 = plt.subplot(111)
line1, line2 = axes0.plot(x, cosx, 'w',x, x_3, 'c')

line1.set_linewidth(2.5)
line2.set_linewidth(1)
# plt.xlim(x.min() *2, x.max()*2)
axes0.set_xlim(x.min() *1.2, x.max()*1.2)
axes0.set_ylim(cosx.min() * 1.2, cosx.max() * 1.2)

axes0.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
axes0.set_xticklabels([r'$-\pi$', r'$-\frac{\pi}{2}$', 0,  r'$+\frac{\pi}{2}$', r'$+\pi$'])
axes0.set_yticks([-1, 0, 1])
axes0.set_yticklabels([r'-1', r'0', r'+1'])


axes0.set_xlabel('x-values')
axes0.set_ylabel('y-values')
plt.show()
           
matplotlib5---設定軸範圍limits,标度tick, 刻度符号 tick label, 軸居中

繼續閱讀