09 误差棒图 errorbar

用途

测量值及其不确定度,用于实测与仿真对比、多次测量的标准差表达。

示例(5 张)

09-1 实测与仿真节点电压对比(含测量误差棒)

实测与仿真节点电压对比(含测量误差棒)

09-2 变压器不同负载率下的效率测量值与标准差

变压器不同负载率下的效率测量值与标准差

09-3 各次谐波电流测量值与不确定度(对数纵轴)

各次谐波电流测量值与不确定度(对数纵轴)

09-4 电缆接头温度测量值随环境温度变化(三测点)

电缆接头温度测量值随环境温度变化(三测点)

09-5 短期负荷预测各时段误差(MAPE 与置信区间)

短期负荷预测各时段误差(MAPE 与置信区间)

代码

以下 5 个函数取自 code/第二批_分布图型261106.py,直接调用即可出图。版式(宋体 + Times、10 磅、刻度朝内四边、图内无标题、留白自检)由 code/公共配置261106.py 的 setup_cn_style() 与 save() 统一提供。

# 摘自 code/第二批_分布图型261106.py

def err_01():
    """实测与仿真节点电压对比(含测量误差棒)。"""
    fig, ax = new_fig(left=0.19)
    rng = np.random.default_rng(401)
    node = np.arange(1, 9)
    sim = np.array([10.12, 10.06, 9.98, 9.91, 9.86, 9.94, 10.03, 10.09])
    err = rng.uniform(0.012, 0.032, 8)
    meas = sim + rng.normal(0, 0.012, 8)
    ax.errorbar(node, sim, yerr=err, fmt="o", color=C1, ms=4, lw=1.0,
                capsize=3, capthick=0.7, elinewidth=0.7, label="仿真值 ± 误差")
    ax.plot(node, meas, ls="none", marker="s", ms=4, color=C2, label="实测值")
    ax.set_xlabel("节点编号")
    ax.set_ylabel("节点电压 " + IT["U"] + " / kV")
    ax.set_xticks(node)
    ax.set_xlim(0.5, 8.5)
    ax.set_ylim(9.80, 10.20)
    legend(ax, "lower left", ncol=1)
    save(fig, "09_误差棒", "09_误差棒_节点电压实测与仿真")

def err_02():
    """变压器不同负载率下的效率测量值与标准差。"""
    fig, ax = new_fig(left=0.19)
    rng = np.random.default_rng(402)
    beta = np.linspace(0.1, 1.0, 10)
    eff = 98.55 - 1.65 * (1 - beta) ** 1.4 - 0.55 * beta ** 3
    sd = rng.uniform(0.05, 0.14, 10)
    ax.errorbar(beta, eff, yerr=sd, fmt="-o", color=C1, ms=3.5, lw=1.0,
                capsize=3, capthick=0.7, elinewidth=0.7, label="实测均值 ± 标准差")
    ax.set_xlabel("负载率 " + IT["beta"])
    ax.set_ylabel("效率 " + IT["eta"] + " / %")
    ax.set_xlim(0, 1.05)
    ax.set_ylim(97.0, 99.2)
    legend(ax, "lower right", ncol=1)
    save(fig, "09_误差棒", "09_误差棒_变压器效率测量")

def err_03():
    """各次谐波电流测量值与不确定度(对数纵轴)。"""
    fig, ax = new_fig(left=0.19)
    rng = np.random.default_rng(403)
    h = np.array([2, 3, 4, 5, 6, 7, 9, 11, 13])
    amp = np.array([4.2, 38.6, 2.1, 26.4, 1.3, 15.8, 6.2, 3.4, 1.8])
    err = amp * rng.uniform(0.04, 0.11, len(h))
    ax.errorbar(h, amp, yerr=err, fmt="s", color=C1, ms=4, lw=1.0,
                capsize=3, capthick=0.7, elinewidth=0.7, label="测量值 ± 不确定度")
    ax.set_yscale("log")
    ax.set_xlabel("谐波次数 " + IT["h"])
    ax.set_ylabel("谐波电流 " + IT["I"] + SUB["h"] + " / A")
    ax.set_xticks(h)
    ax.set_xlim(1, 14)
    legend(ax, "lower left", ncol=1)
    save(fig, "09_误差棒", "09_误差棒_谐波电流不确定度")

def err_04():
    """电缆接头温度测量值随环境温度变化(三测点)。"""
    fig, ax = new_fig(left=0.19)
    rng = np.random.default_rng(404)
    ta = np.arange(5, 41, 4)
    for i, (slope, nm) in enumerate([(1.62, "接头 A"), (1.48, "接头 B"),
                                     (1.75, "接头 C")]):
        tc = 8 + slope * ta
        sd = rng.uniform(0.6, 1.5, len(ta))
        ax.errorbar(ta, tc, yerr=sd, fmt=["o", "s", "^"][i],
                    color=COLORS[i], ms=3.5, lw=1.0, capsize=2.5,
                    capthick=0.7, elinewidth=0.7, label=nm)
    ax.set_xlabel("环境温度 " + IT["T"] + SUB["0"] + " / °C")
    ax.set_ylabel("接头温度 " + IT["T"] + " / °C")
    ax.set_xlim(0, 45)
    ax.margins(y=0.22)
    legend(ax, "upper left", ncol=1)
    save(fig, "09_误差棒", "09_误差棒_电缆接头温度")

def err_05():
    """短期负荷预测各时段误差(MAPE 与置信区间)。"""
    fig, ax = new_fig(left=0.19)
    rng = np.random.default_rng(405)
    t = np.arange(1, 25)
    mape = 3.2 + 1.8 * np.abs(np.sin(t / 24 * np.pi)) + rng.normal(0, 0.25, 24)
    ci = 0.9 + 0.35 * np.sin(t / 24 * np.pi * 2) ** 2
    ax.errorbar(t, mape, yerr=ci, fmt="-o", color=C1, ms=3, lw=1.0,
                capsize=2.5, capthick=0.7, elinewidth=0.7,
                label="平均绝对百分比误差 ± 置信半宽")
    ax.axhline(np.mean(mape), color=C2, lw=0.8, ls="--",
               label="全日均值 " + f"{np.mean(mape):.2f}%")
    ax.set_xlabel("时刻 " + IT["t"] + " / h")
    ax.set_ylabel("预测误差 MAPE / %")
    ax.set_xlim(0, 25)
    ax.set_ylim(2.0, 6.6)
    legend(ax, "upper center", ncol=1)
    save(fig, "09_误差棒", "09_误差棒_短期负荷预测误差")

说明

  • 图片 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
  • 图内不放标题,图题由本文件的标题承担。
  • 数据为 10 kV 配网、380 V 低压、50 Hz 量级的仿真算例,随机种子固定,重跑结果一致。
posted on 2026-11-07 01:03  小青蛙电气  阅读(2)  评论(0)    收藏  举报