我使用multiple_boxplot函数生成分组箱图: http://au.mathworks.com/matlabcentral/fileexchange/47233-multiple-boxplot-m
然而,我想要绘制手段而不是中位数。首先我尝试了一般方法:
plot([mean(x)],'dg');
但它没有用。我试图提取手段,然后绘制它们,但这也没有用。
m=[];
for i=1:max(group)
idx=find(group==i);
m=[m nanmean(x(idx))];
end
boxplot(x,group, 'positions', positions);hold on
plot([m],'dg')
我做错了什么?以及如何用每个箱图绘制平均值? 谢谢。
答案 0 :(得分:0)
您可以执行以下操作:
在函数multiple_boxplot
中将第48行更改为:
B = boxplot(x,group, 'positions', positions);
并将函数的标题更改为:
B = multiple_boxplot(data...
并保存功能文件。
这不会改变函数的工作方式,但可以让你获得boxplot(B
)的句柄。
然后在您的代码中,像以前一样创建boxplot,但输出参数为B
:
B = multiple_boxplot(data...);
并添加以下行:
% compute the mean by group:
M = cellfun(@mean,data);
% convert it to pairs of Y values:
M = mat2cell(repmat(M(:),1,2),ones(size(M,1),1),2);
% change the medians to means:
set(B(6,:),{'YData'},M)