【问题标题】:How to plot location of standard deviation from mean in Matlab如何在Matlab中绘制标准差与平均值的位置
【发布时间】:2015-11-13 08:05:24
【问题描述】:

我已经获得了一些数据点,并从中制作了直方图,并通过平均值绘制了一条线。

我现在需要“在每个直方图上包含两条蓝色虚线,显示标准偏差的位置 平均值的每一边。”但我不确定这意味着什么。我唯一的猜测是取低于平均值的值的标准差,然后取高于平均值的值的标准差,然后绘制二。只有它给了我平均值左侧的两个标准差。

这是我为此编写的代码:

figure,

subplot(3,1,1)
histogram(AllValue,'BinWidth',.5), title('All Values')
mu=mean(AllValue, 'omitnan');
su=std(AllValue(AllValue<4.7450));
su2=std(AllValue(AllValue>4.7450));
hold on
plot([mu,mu],ylim,'r','LineWidth',2), 
plot([su,su],ylim,'b--','LineWidth',2),text([su,su],ylim,'StdDev Left')
plot([su2,su2],ylim,'b--','LineWidth',2)
hold off

这是结果图:

  1. 我对均值左侧/右侧的 std 的想法是否正确?如果不是,那是什么意思?
  2. 如何在代码中实现它?

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    这很可能意味着您应该在绘图中绘制一个标准偏差限制,即在mu-sigma 处绘制一条水平虚线,在mu+sigma 处绘制另一条虚线。 这里sigma指的是所有数据的标准差,不是低于或高于平均值的,sigma=std(AllValue)

    例如,您可以执行以下操作以在均值之上绘制一个标准差限制:

    plot([mu+sigma,mu+sigma],ylim,'b--','LineWidth',2)
    

    【讨论】: