我正在用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
答案 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轴限制。