Matlab中errorbar函数误差线位置不符合预期问题求助
Matlab errorbar误差线位置异常排查
问题核心
Matlab 内置errorbar函数的第三、第四输入参数要求传入的是误差相对于中心数据点的偏移量,而非置信区间端点的绝对坐标。你当前代码直接传入提前计算好的区间上下限绝对位置,不符合函数输入逻辑,因此误差线位置不符合预期。
修复方法
先计算上下区间相对于data的偏移值,再传入errorbar即可,修正后代码如下:
% data for errorbars data = [-0.329764340000000;-0.374996630000000;-0.279023200000000;-0.366639140000000;0.347093700000000;0.545207860000000;0.751462400000000;-0.829505260000000;0.829507770000000;-0.545235100000000;0.524703500000000;0.232506130000000;-0.403305050000000;0.397193100000000]; % upper and lower ticks (positions) of the CI / errorbars lower_CI = [-0.584740242855886;-0.570326581039562;-0.517823465974172;-0.629680037764874;-0.246945265039860;0.0562831850081804;0.360917757402951;-0.975194052079753;0.732974670525949;-0.698941828936124;-0.125875916733751;-0.277119510479645;-0.574489102702906;-0.115446583316303]; upper_CI = [0.147697669032193;0.0388520624922168;0.314905648112612;0.166970294864421;0.590855094796161;0.812980025737368;0.831301062393713;-0.701031711901664;0.985337808304139;-0.0585632559357397;0.700283292166636;0.563252495614094;0.166863127706487;0.708490555044120]; % 计算误差偏移量 lower_err = data - lower_CI; upper_err = upper_CI - data; figure; a = bar(data); hold on er = errorbar((1:14)',data,lower_err,upper_err, '.', 'vertical'); er.Color = [0 0 0]; hold off
修改后误差线的端点会精准匹配你提前计算好的lower_CI和upper_CI坐标。
内容的提问来源于stack exchange,提问作者Katharina Voigt
相关产品推荐
相关产品推荐

