( 图表 ) 阶梯折线图
这篇教学会使用 matplotlib pyplot 模组里的 step() 方法,将数据绘制成阶梯折线图 ( Step Chart ),并进一步介绍 step() 的相关用法。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
import matplotlib
要进行本篇的范例,必须先加载 matplotlib 函数库的 pyplot 模组,范例将其独立命名为 plt。
import matplotlib.pyplot as plt
pyplot.step() 参数说明
pyplot.step() 常用的参数如下表所示 ( 完整参数参考:matplotlib.pyplot.step ):
| 参数 | 说明 |
|---|---|
| x | 必填,数据位置 ( x 轴 )。 |
| y | 必填,长条图高度 ( y 轴 )。 |
| where | 线段水平对齐位置,默认 pre ( 左 ),可设定 mid ( 中 ) 和 post ( 右 )。 |
| color | 线条或数据点的颜色 ( 除了十六进制色码,也可填入颜色代码,例如 r、g、b、m、c、y...等,参考:color 列表 )。 |
| linestyle | 线条样式,默认实线 solid ( 线条样式代码为 -、--、-.、: )。 |
| linewidth | 线条粗细,默认 2。 |
绘制第一张阶梯折线图
下方的程序码,执行后会根据数据数据画出阶梯折线图。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = list(range(10,100,20)) # 產生 10~100 間隔 20 的數字
plt.step(x,y)
plt.show()
额外设定 step() 的参数,就能让阶梯折线图有更多变化,下方的例子设定颜色 color、线条宽度 linewidth 和线条样式 linestyle。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = list(range(10,100,20))
plt.step(x,y,color='r',linewidth=5,linestyle='--')
plt.show()
多组数据的阶梯折线图
如果有多组数据需要同时呈现,可以独立绘制每组阶梯折线图,完成后再使用 show() 的方式显示散布图,下方的例子会呈现三组阶梯折线图,同时设定不同的 where 参数 ( 可观察出起始点与终点位置的不同 )。
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y1 = list(range(10,110,20))
y2 = list(range(40,140,20))
y3 = list(range(70,170,20))
plt.step(x,y1,color='r')
plt.step(x,y2,color='g',where='mid')
plt.step(x,y3,color='b',where='post')
plt.show()
搭配 NumPy 阶梯折线图
由于 matplotlib 能完美的和 NumPy 整合,所以能透过 NumPy 强大的处理或产生数据能力,快速产生许多绘图用的数据,下方的例子,使用 NumPy 产生 100~1000 随机十个数字,使用 matplotlib 绘制出结果。
from numpy import random
import matplotlib.pyplot as plt
x = range(0,10) # 產生 0~9 共十個數字
y = random.randint(100,1000,10) # 產生 100~1000 隨機十個數字
plt.step(x,y) # 繪製階梯折線圖
plt.plot(x,y,'o--', color='grey',alpha=0.3) # 繪製折線圖
plt.show()
微信扫码关注
抖音扫码关注