如何使用PyPlot绘制带区间阴影的范围折线图

这类图表通常称为带填充区间的折线图,如果区间为统计置信区间也可叫置信区间折线图,用Matplotlib的fill_between接口即可实现需求,以下是完整实现方案:
- 前置前提:需要先将10组数据的x坐标对齐,若原始数据x采样不一致,可先通过插值将所有y值映射到同一x轴采样序列上
- 实现代码:
import numpy as np import matplotlib.pyplot as plt # -------------------------- 替换为你的真实数据 -------------------------- # 模拟x轴采样点 x = np.linspace(0, 10, 50) # 模拟10组独立数据集的y值 all_y = [] for _ in range(10): y = np.sin(x) + np.random.normal(0, 0.2, size=len(x)) all_y.append(y) all_y = np.array(all_y) # 选其中一组作为主展示折线,这里选第1组,可自行修改 main_y = all_y[0] # ----------------------------------------------------------------------- # 计算每个x位置所有y值的最大值和最小值 y_min = np.min(all_y, axis=0) y_max = np.max(all_y, axis=0) # 绘图 plt.figure(figsize=(10, 6)) # 先绘制阴影区间,alpha控制透明度,避免盖过折线 plt.fill_between(x, y_min, y_max, color='steelblue', alpha=0.2, label='所有数据极值区间') # 绘制主展示折线 plt.plot(x, main_y, color='steelblue', linewidth=2, label='主展示数据集') plt.xlabel('X轴') plt.ylabel('Y轴') plt.legend() plt.show()
你可以自行调整fill_between的alpha参数修改阴影透明度,修改color参数切换整体配色。
内容的提问来源于stack exchange,提问作者corazza
相关产品推荐
相关产品推荐

