在直方图上绘制线条

Posted

技术标签:

【中文标题】在直方图上绘制线条【英文标题】:Plotting lines over histogram 【发布时间】:2013-07-04 15:55:11 【问题描述】:

我想在直方图上绘制标准差和平均值,如下所示。

这是我的代码:

         filename = 'C:\Users\unique.xlsx';
        %removed duplicate entries from the file

           columnB = xlsread(filename,'B:B');



             edges = unique(columnB)



        n_elements =histc(columnB, edges)/numel(columnB);

          bar(edges,n_elements,'BarWidth',4)

           meanB=mean(columnB)   % expectation
           stdB=std(columnB)

          figure(2)
           hold on
            ylim=get(gca,'ylim')
           line([meanB meanB], ylim,'g')
              hold on
           line ([meanB+stdB meanB+stdB NaN meanB-stdB meanB-stdB] , [ylim NaN   ylim],'r')

但它给了我以下错误:

   ??? Error using ==> line
       String argument is an unknown option.

     Error in ==> read at 23
    line([meanB meanB], ylim,'g')

【问题讨论】:

【参考方案1】:

使用

line([meanB meanB], ylim, 'Color','g');

而不是

line([meanB meanB], ylim,'g');

【讨论】:

谢谢你的工作,但有一个问题我想用一条水平线显示标准偏差,但我得到两条垂直线。如何实现如图所示的水平线。

以上是关于在直方图上绘制线条的主要内容,如果未能解决你的问题,请参考以下文章

seaborn可视化displot绘制直方图(histogram)并通过axvline函数在直方图中添加中位数(median)竖线(自定义中位数竖线的线条形式)

如何在直方图的 matplotlib 图例中制作线条而不是框/矩形

使用 matplotlib 在单个图表上绘制两个直方图

使用 Matplotlib 在对数尺度上绘制直方图

使用 plotly 基于组变量绘制直方图网格

如何在存在多个组的单个直方图中绘制多条平均线?