在直方图绘图matlab上绘制垂直线
Draw vertical line on histogram plot matlab
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');
这给了我图片:
现在我想添加显示 "seconds" 轴平均值的垂直线,我已经知道该值以及标准偏差。类似于:
我有 mn 和 stdv 值。我试过这个:
mn = mean(ko) / 30;
stdv = std(ko) / 30;
hax=axes;
line([mn mn],get(hax,'YLim'))
hold off;
但它会忽略之前绘制的直方图并绘制垂直线,但只显示那条线,不再显示直方图。如何实现?
问题出在线路上
hax=axes;
这将创建一个 new 轴对象,它覆盖了前一个。
解决办法是改成
hax=gca;
以便后续 line
转到包含直方图的 相同 轴。
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');
这给了我图片:
现在我想添加显示 "seconds" 轴平均值的垂直线,我已经知道该值以及标准偏差。类似于:
我有 mn 和 stdv 值。我试过这个:
mn = mean(ko) / 30;
stdv = std(ko) / 30;
hax=axes;
line([mn mn],get(hax,'YLim'))
hold off;
但它会忽略之前绘制的直方图并绘制垂直线,但只显示那条线,不再显示直方图。如何实现?
问题出在线路上
hax=axes;
这将创建一个 new 轴对象,它覆盖了前一个。
解决办法是改成
hax=gca;
以便后续 line
转到包含直方图的 相同 轴。