Python可视化实战:带误差线的折线图(显示标准差/置信区间)

适用数据:连续变量(如时间序列、浓度梯度、温度变化)。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# 设置随机种子以确保可重复性
np.random.seed(42)

# 创建示例数据
x = np.arange(1, 6)  # x轴数据
y = np.array([2, 3, 5, 4, 6])  # y轴均值

# 为每个点生成一些随机数据点来计算标准差和置信区间
data_points = np.array([np.random.normal(loc=val, scale=1.0, size=20) for val in y])

# 计算均值和标准差
means = np.mean(data_points, axis=1)
std_dev = np.std(data_points, axis=1, ddof=1)  # 样本标准差

# 计算95%置信区间
confidence_intervals = []
for data in data_points:
    ci = stats.t.interval(0.95, len(data)-1, loc=np.mean(data), scale=stats.sem(data))
    confidence_intervals.append(ci)
confidence_intervals = np.array(confidence_intervals)
ci_lower = means - confidence_intervals[:, 0]
ci_upper = confidence_intervals[:, 1] - means

# 创建图形
plt.figure(figsize=(10, 6))

# 绘制带标准差误差线的折线图
plt.errorbar(x, means, yerr=std_dev, fmt='-o', capsize=5, capthick=2, 
             label='Mean ± Std Dev', color='blue')

# 绘制带置信区间误差线的折线图
plt.errorbar(x, means, yerr=[ci_lower, ci_upper], fmt='--o', capsize=5, capthick=2,
             label='Mean ± 95% CI', color='green', alpha=0.5)

# 添加标题和标签
plt.title('Line Plot with Error Bars (Std Dev and Confidence Intervals)', fontsize=14)
plt.xlabel('X-axis', fontsize=12)
plt.ylabel('Y-axis', fontsize=12)
plt.xticks(x)
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend(fontsize=12)

# 显示图形
plt.tight_layout()
plt.show()

运行结果:

蓝色实线表示均值,误差线表示标准差

绿色虚线表示同样的均值,但误差线表示95%置信区间

随机种子设置为42,确保每次运行结果相同

可以根据需要调整以下参数:

np.random.seed() - 改变随机种子

scale参数 - 改变数据的离散程度

stats.t.interval()中的0.95 - 改变置信水平

figsize - 调整图形大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值