天天看點

Python資料分析,matpotlib設定軸線和儲存圖檔

軸線基本樣式設定

  • 軸線用于劃分繪圖區域的邊界
  • 軸對象位于頂部,底部,左側和右側
  • 每個軸線可以通過指定顔色和寬度進行格式化
  • 如果任何軸線邊緣的顔色設定為無,則可以使其不可見
fig, axes = plt.subplots(1, 2, figsize=(10,4))

x = np.arange(1,6)

# 原圖
axes[0].plot(x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("The original image")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")

# 設定之後
axes[1].plot(x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_title("After setting")
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")

# 軸線設定
axes[1].spines['bottom'].set_color('blue')
axes[1].spines['left'].set_color('red')
axes[1].spines['left'].set_linewidth(2)
axes[1].spines['right'].set_color(None)
axes[1].spines['top'].set_color(None)           
Python資料分析,matpotlib設定軸線和儲存圖檔

格式化軸線

需求:有時候一個或幾個點比大量資料大得多,在這種情況下,軸的比例需要設定為對數(log)而不是正常比例。

原理:這種對數标度在Matplotlib中可以通過将axes對象的xscale或yscale屬性設定為log,有時還需要在軸編号和軸标簽之間顯示一些額外的距離,任一軸(x或y或兩者)的labelpad屬性都可以設定為所需的值。

fig, axes = plt.subplots(1, 2, figsize=(10,4))

x = np.arange(1,6)

# 正常比例
axes[0].plot(x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal proportion")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")

# 對數刻度
axes[1].plot(x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_title("Logarithmic scale(y)")
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")

axes[1].set_yscale("log")
axes[1].xaxis.labelpad = 20           
Python資料分析,matpotlib設定軸線和儲存圖檔

設定軸線限制

需求:将x軸上的限制格式化為(0到10)和y軸(0到10000)。

fig, axes = plt.subplots(1, 2, figsize=(10,4))

x = np.arange(1,11)
y = np.exp(x)

# 原圖
axes[0].plot(x, y)
axes[0].set_title('Index value')

# 設定之後
axes[1].plot(x, y)
axes[1].set_title('Index value')
axes[1].set_xlim(0,10)
axes[1].set_ylim(0,10000)           
Python資料分析,matpotlib設定軸線和儲存圖檔

儲存圖檔

作用:将圖像顯示結果儲存到本地圖像檔案。

參數 說明
fname 含有檔案路徑的字元串或Python的檔案型對象。
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_axes([0,0,1,1])

ax.plot(x, y)
ax.set_xticks([0,2,4,6])
ax.set_yticks([-1,0,1])

fig.savefig("sin.jpg")