【问题标题】:Draw vertical line on histogram plot matlab在直方图matlab上绘制垂直线
【发布时间】:2017-05-11 08:53:14
【问题描述】:

Matlab R2015b。我使用以下代码绘制直方图:

close all;
hold on;
ko = histograms_windows_1_0{7};
histogram(ko);
set(gca,'XLim',[0 30],'XTick',0:5:30);
xticks = [0;0.16;0.33;0.5;0.66;0.83;1];
set(gca,'XTickLabel', xticks)
xlabel('Seconds');
ylabel('Correct Transitions');

这给了我图片:

现在我想添加显示“秒”轴平均值的垂直线,我已经知道该值以及标准偏差。类似于:

我有 mn 和 stdv 值。我试过这个:

mn = mean(ko) / 30;
stdv = std(ko) / 30;
hax=axes;
line([mn mn],get(hax,'YLim'))
hold off;

但它忽略了先前绘制的直方图并绘制垂直线,但只显示那条线,不再显示直方图。如何实现?

【问题讨论】:

  • 只是让您知道,均值和标准不会是您期望的。你的直方图看起来有点像高斯,但它不是。平均值可能略小于 0.5,因此该线将在峰值之外。与标准相同。您可以明显看到您的直方图左右分布不同,因此单个标准值实际上没有帮助。您不能将与高斯分布相关的数学应用于不同的分布
  • 也就是说,试试histfit,它用直方图绘制拟合分布

标签: matlab plot graphics histogram matlab-figure


【解决方案1】:

问题是线

hax=axes;

这会创建一个 新的 轴对象来覆盖前一个。

解决办法是改成

hax=gca;

以便随后的line 转到包含直方图的相同 轴。

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多