matlab - 在箱线图上显示统计显着性
问题描述
我正在用 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
解决方案
您正在 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 轴限制。
推荐阅读
- angular - 如何在 HTML 字符串中使用 routerLink?
- css - 如何更改primefaces日历中的按钮名称
- html - 我如何向客户提供包含他们的打印输入数据的表格?
- node.js - 你如何用 Node.js 解释 Http 错误消息的奇怪行为
- python - 我应该如何使用 python 和 BS4 从网页中正确提取和解析主题数据?
- javascript - Angular如何在表单提交上获取按钮元素
- python - 列表中的列表组合
- ios - 从 UIDocument 应用程序中的图像添加缩略图
- dart - 我试图将数据添加到 Firestore,但“Firestore 组件不存在”。终端给出这个错误信息
- php - Laravel 一个域,Session 检测到多个数据库