( 图表 ) 堆叠折线图
这篇教学会使用 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()
微信扫码关注
抖音扫码关注