Why-問題原因
在Matplotlib中,使用子圖繪製和直接繪製的語法會略有不同
然而具體要調整些什麼常常會忘記,所以乾脆趁著這次的機會整理起來
What-問題說明
原始:使用plt繪製
調整:使用ax繪製
How-處理方式
基本流程
將plt
的繪圖換成ax
的繪圖需要進行以下調整:
- 建立
Figure
和Axes
物件:使用plt.subplots()
建立Figure
和Axes
物件,而不是使用plt
直接繪圖。 - 替換
plt
的繪圖函數:使用Axes
物件的對應繪圖函數(例如ax.plot()
、ax.bar()
等)替換plt
的繪圖函數。 - 設置圖形屬性:使用
Axes
物件的相應方法設置圖形屬性,例如標題、軸標籤、刻度、圖例等。 - 顯示圖形:最後使用
plt.show()
或fig.show()
來顯示圖形。
對照表
plt 函數 |
對應的ax 函數 |
函數用途 |
---|---|---|
plt.plot() |
ax.plot() |
繪製折線圖 |
plt.scatter() |
ax.scatter() |
繪製散點圖 |
plt.bar() |
ax.bar() |
繪製條形圖 |
plt.hist() |
ax.hist() |
繪製直方圖 |
plt.imshow() |
ax.imshow() |
繪製影像 |
plt.contour() |
ax.contour() |
繪製等高線 |
plt.contourf() |
ax.contourf() |
繪製填充的等高線 |
plt.pcolormesh() |
ax.pcolormesh() |
繪製網格的顏色區塊 |
plt.text() |
ax.text() |
在座標軸上添加文本 |
plt.legend() |
ax.legend() |
添加圖例 |
plt.title() |
ax.set_title() |
設置圖表標題 |
plt.xlabel() |
ax.set_xlabel() |
設置x軸標籤 |
plt.ylabel() |
ax.set_ylabel() |
設置y軸標籤 |
plt.xlim() |
ax.set_xlim() |
設置x軸範圍 |
plt.ylim() |
ax.set_ylim() |
設置y軸範圍 |
plt.xticks() |
ax.set_xticks() |
設置x軸刻度位置 |
plt.yticks() |
ax.set_yticks() |
設置y軸刻度位置 |
plt.grid() |
ax.grid() |
添加座標軸網格線 |
plt.subplots() |
fig, ax = plt.subplots() |
創建新的Figure 和Axes 對象 |
需要注意的是,這些函數的使用方式可能會略有不同。例如,
ax.set_xlim()
和ax.set_ylim()
需要傳遞包含最小值和最大值的元組,而plt.xlim()
和plt.ylim()
則需要傳遞最小值和最大值作為獨立的引數。因此,在使用ax
的繪圖方式時,需要特別注意函數的引數和使用方式。