【Matplotlib】 移動spines

相關文檔:html

Spines 是鏈接軸刻度標記的線,並且標明瞭數據區域的邊界。 他們能夠被放置在任意位置。直到如今,他們還是軸的邊界。咱們將要改變現狀,由於咱們想要spines 置於中間。由於有四個spine(上下左右),咱們將要經過設置顏色(無)丟棄上面和右側的部分。 進而咱們移動下面和左邊的線到座標0(數據空間)。orm

上面的設置能夠經過如下代碼設置htm

...
ax = plt.gca()  # gca stands for 'get current axis'
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
...

完整的代碼以下:文檔

import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(8,5), dpi=80)
plt.subplot(111)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C = np.cos(X)
S = np.sin(X)

plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-")
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-")

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

plt.xlim(X.min() * 1.1, X.max() * 1.1)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
  [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

plt.ylim(C.min() * 1.1, C.max() * 1.1)
plt.yticks([-1, 0, +1],
  [r'$-1$', r'$0$', r'$+1$'])

plt.show()

圖像形式以下:get

相關文章
相關標籤/搜索