You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib带误差棒柱状图出现连线问题的解决方法咨询

问题:Matplotlib柱状图误差棒间出现线性连线的成因与修复

问题现象

使用Matplotlib绘制带误差棒的柱状图时,各误差棒之间出现了不必要的线性连线,误差棒被直线串联在一起。

代码实现

for k in range(1,(len(Durchgansmarker)*2)+1):

    if k<=int(len(Durchgansmarker)):

        globals()[f'rects{k}_error'] =axes_1.errorbar(x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2  ,globals()[f'y_tr_mean_E{k}'], yerr=globals()[f'y_tr_std_E{k}'], capsize=5, ecolor="k", elinewidth=2,barsabove='False' ,zorder=4)#fmt="o", color="r"

        globals()[f'rects{k}'] = axes_1.bar(x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2  ,globals()[f'y_tr_mean_E{k}'],width_bar, color=color_Bars[k-1],zorder=3)#,yerr=[globals()[f'y_tr_std_E{k}']]

    else:

        globals()[f'rects{k}_error'] =axes_1.errorbar(x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2  ,globals()[f'y_ge_mean_E{k-3}'], yerr=globals()[f'y_ge_std_E{k-3}'], capsize=5, ecolor="k", elinewidth=2,barsabove='False' ,zorder=4)#fmt="o", color="r"

        globals()[f'rects{k}'] = axes_1.bar(x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2,globals()[f'y_ge_mean_E{k-3}'],width_bar, color=color_Bars[k-1],zorder=3)

相关数据

柱状图与误差棒对应的y值为多组离散数据,每组对应一个柱状条的均值和标准差。


成因分析

errorbar()函数默认会用线条连接所有输入的x、y数据点。你的代码中,x是包含多个数值的数组(对应多个柱状条的位置),每次调用errorbar()时传入的是一组x位置和对应的y均值,这会触发函数将这一组x的所有点用直线连接,从而形成误差棒间的多余连线。

修复方法

在调用errorbar()时添加fmt='none'参数,明确指定只绘制误差棒,不绘制数据点之间的连线。同时注意barsabove参数需要传入布尔值False而非字符串'False',否则参数无法正常生效。

修改后的关键代码片段

# 第一组误差棒调用
globals()[f'rects{k}_error'] =axes_1.errorbar(
    x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2,
    globals()[f'y_tr_mean_E{k}'],
    yerr=globals()[f'y_tr_std_E{k}'],
    capsize=5,
    ecolor="k",
    elinewidth=2,
    barsabove=False,
    zorder=4,
    fmt='none'  # 禁用数据点连线
)

# 第二组误差棒调用同理
globals()[f'rects{k}_error'] =axes_1.errorbar(
    x -Anzahl_Balken/2*width_bar+(k*width_bar)-width_bar/2,
    globals()[f'y_ge_mean_E{k-3}'],
    yerr=globals()[f'y_ge_std_E{k-3}'],
    capsize=5,
    ecolor="k",
    elinewidth=2,
    barsabove=False,
    zorder=4,
    fmt='none'
)

内容的提问来源于stack exchange,提问作者CarstenWE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:39:24