堆疊折線圖 Stackplot Chart
這篇教學會使用 matplotlib pyplot 模組裡的 stackplot() 方法,將資料繪製成堆疊折線圖,並進一步介紹 stackplot() 的相關用法。
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
import matplotlib
要進行本篇的範例,必須先載入 matplotlib 函式庫的 pyplot 模組,範例將其獨立命名為 plt。
import matplotlib.pyplot as plt
pyplot.stackplot() 參數說明
pyplot.stackplot() 常用的參數如下表所示 ( 完整參數參考:matplotlib.pyplot.subplots ):
參數 | 說明 |
---|---|
x | 必填,數據位置 ( x 軸 )。 |
y | 必填,堆疊高度 ( y 軸 ),如果有多數據,使用逗號分格,例如 y1,y2,y3...。 |
baseline | 基線模式,預設 zero 從底部開始,可設定 sym、wiggle、weighted_wiggle。 |
labels | 資料說明標籤,如果有多筆數據資料,使用串列格式。 |
colors | 資料顏色,如果有多筆數據資料,使用串列格式。 |
繪製第一張堆疊折線圖
下方的程式碼,執行後會根據數據資料畫出堆疊折線圖。
import matplotlib.pyplot as plt
x = range(0,10)
y = [1,5,10,6,9,20,18,19,22,12]
plt.stackplot(x,y)
plt.show()
如果有多組數據,只需要在 x 後方添加數據,就能透過堆疊折線圖呈現。
import matplotlib.pyplot as plt
x = range(0,10)
y1 = [1,5,10,6,9,20,18,19,22,12]
y2 = [12,5,8,9,18,12,20,25,16,7]
y3 = [5,9,14,18,21,4,7,19,2,5]
plt.stackplot(x,y1,y2,y3)
plt.show()
設定堆疊折線圖樣式
調整面積堆疊圖的參數,就能設定不同的樣式。
import matplotlib.pyplot as plt
x = range(0,10)
y1 = [1,5,10,6,9,20,18,19,22,12]
y2 = [12,5,8,9,18,12,20,25,16,7]
y3 = [5,9,14,18,21,4,7,19,2,5]
fig, ax = plt.subplots(2,2)
fig.set_size_inches(12,8)
ax[0,0].stackplot(x,y1,y2,y3,baseline='zero')
ax[0,1].stackplot(x,y1,y2,y3,baseline='sym')
ax[1,0].stackplot(x,y1,y2,y3,baseline='wiggle')
ax[1,1].stackplot(x,y1,y2,y3,
labels=['y1','y2','y3'],
baseline='weighted_wiggle',
colors=['#f66','#0a4','#fa0'])
ax[1,1].legend(loc='lower left')
plt.show()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~