在箱线图上指示统计显着性

时间:2018-10-28 08:47:15

标签: matlab matlab-figure boxplot

我正在用MATLAB中的样本数据集绘制两个箱形图。我想在方框图中插入一个星号,以表示统计意义。当我画这颗星时,它会调整到一个角,而不是在两个框之间。我在附上箱线图。解决该问题的任何帮助将不胜感激。

x1 = required_data_threhold_time_for_recruitment_gdnest; 
x2 = required_data_threhold_time_for_recruitment_bdnest; 
x = [x1 ;x2];
g = [ones(size(x1)); 2*ones(size(x2))];
boxplot(x,g,'Labels',{'Good nest (1 lux)','Poor nest (16 lux)'});
ylabel('Time(seconds)')
yt = get(gca, 'YTick');
axis([xlim    0  ceil(max(yt)*1.2)])
set(gca, 'Xtick', 1:3);
xt = get(gca, 'XTick');
hold on
plot(xt([2 3]), [1 1]*max(yt)*1.1, '-k',  mean(xt([2 3])), max(yt)*1.15, '*k')
hold off

enter image description here

1 个答案:

答案 0 :(得分:1)

您正在x轴坐标xt([2 3])之间绘制一条线,其中xt是刻度线的位置。这意味着您将在刻度线2和3之间画一条线。如果观察绘图,您只会看到两个刻度线。第三个突破了向右的界限。因此,线条(和星星)的位置完全符合预期。

请使用xt([1,2])(前两个刻度线的位置)。

您有三个刻度线的原因是因为该行

set(gca, 'Xtick', 1:3);

可以在x坐标1、2和3上显式设置刻度线。图形的x限制很可能接近0.5和2.5,因为绘图框是在整数坐标处绘制的。您可以检查代码中已经使用的xlim的值,以了解限制。

我将跳过此步骤,而不是显式设置刻度位置,一开始它们应该是正确的。

此外,我将使用ylim命令(或set(gca,'XLim',...))来更改y轴限制。

相关问题