gpt4 book ai didi

matlab - 绘制分组箱线图matlab的最有效方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:21:46 27 4
gpt4 key购买 nike

我有 3 个向量:Y=rand(1000,1)X=Y-rand(1000,1)ACTid=randi(6 ,1000,1)。我想按对应于其组值 1:6(来自 ACTid)的 Y 和 X 组创建箱线图。

这是相当临时的,看起来很讨厌

for ii=
dummyY(ii)={Y(ACTid==ii)};
dummyX(ii)={X(ACTid==ii)}
end

现在我的单元格中有数据,但不知道如何将其分组到箱线图中。有什么想法吗?

我找到了 aboxplot function看起来像这样,但我不想要那样,我想要内置的箱线图功能,因为我正在将它转换为 matlab2tikz,而这个功能做得不好。

enter image description here

编辑

感谢 Oleg:我们现在有了一个分组箱线图……但标签都是歪斜的。

xylabel = repmat({'Bleh','Blah'},1000,1); % need a legend instead, but doesn't appear possible
boxplot([Y(:,end); cfu], {repmat(ACTid,2,1), xylabel(:)} ,'factorgap',10,'color','rk')
set(gca,'xtick',1.5:3.2:50)
set(gca,'xticklabel',{'Direct care','Housekeeping','Mealtimes','Medication','Miscellaneous','Personal care'})
>> ylabel('Raw CFU counts (Y)')

enter image description here

如何添加图例?

最佳答案

我在箱形图中对数据进行分组时遇到了同样的问题。我的另一个限制是不同的组有不同数量的数据点。根据我找到的教程,这似乎是一个不错的解决方案,我想与您分享:

x = [1,2,3,4,5,1,2,3,4,6];
group = [1,1,2,2,2,3,3,3,4,4];
positions = [1 1.25 2 2.25];
boxplot(x,group, 'positions', positions);

set(gca,'xtick',[mean(positions(1:2)) mean(positions(3:4)) ])
set(gca,'xticklabel',{'Direct care','Housekeeping'})

color = ['c', 'y', 'c', 'y'];
h = findobj(gca,'Tag','Box');
for j=1:length(h)
patch(get(h(j),'XData'),get(h(j),'YData'),color(j),'FaceAlpha',.5);
end

c = get(gca, 'Children');

hleg1 = legend(c(1:2), 'Feature1', 'Feature2' );

colored grouped boxplot with varying group sizes

Here是教程的链接。

关于matlab - 绘制分组箱线图matlab的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15971478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com