绘图是指MATLAB中的分组箱图?

时间:2017-10-02 01:56:53

标签: matlab boxplot

我使用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')

我做错了什么?以及如何用每个箱图绘制平均值? 谢谢。

1 个答案:

答案 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)