我想指出多个条形图之间的p值,如下图:
但是我没有在MATLAB的条形图页面上找到与此相关的命令。
这是我的条形图和标准偏差图形的代码:
x = 1:3;
y = [17.5, 97.5, 100];
std = [23.84848004, 10.89724736, 0];
figure
hold on
bar(x,y)
errorbar(y,std,'.')
XTickLabel={'1' ; '2'; '3' ; '4'};
XTick=2:4:15
set(gca, 'XTick',XTick);
set(gca, 'XTickLabel', XTickLabel);
答案 0 :(得分:9)
我不知道这样的功能,但是很容易写一个:
function [hl,ht] = overbar(x1, x2, y, txt)
sz = get(gca,'FontSize');
bg = get(gca,'Color');
d = 2; % size of hook, change depending on y axis scaling
hl = line([x1,x1,x2,x2], [y,y+d,y+d,y]);
ht = text((x1+x2)/2, y+d, txt, ...
'HorizontalAlignment','center', ...
'VerticalAlignment','middle', ...
'FontSize',sz, ...
'BackgroundColor',bg);
end
此功能使用轴的字体大小和颜色属性来确定如何绘制文本。首先绘制线条,然后使用纯色背景在顶部绘制文本,以使线条看起来被文本打断。
这是您将如何使用它:
x = 1:3;
y = [17.5, 97.5, 100];
std = [23.84848004, 10.89724736, 0];
figure
hold on
set(gca, 'FontSize',16)
bar(x, y)
errorbar(y, std, '.')
set(gca, 'ylim',[0,150]);
XTickLabel = {'A', 'B', 'C'};
set(gca, 'xtick',x, 'XTickLabel',XTickLabel);
overbar(1 ,2, 120, 'p=0.037');
overbar(2, 3, 130, 'p<0.0001');
overbar(1, 3, 140, 'p<0.0001');