Grouped boxplot with different lengths

6 views (last 30 days)
Hello:
I want to plot grouped boxplot in a single figure. My cell array contains foll mxn matrices.:
G1: 108x2
G2: 293x2
G3: 30x2
Each of these Gs' are different groups for which I need to plot 6 boxplot for these 3 sub-groups. Any help?

Accepted Answer

Adam Danz
Adam Danz on 29 Jul 2019
Edited: Adam Danz on 29 Jul 2019
You can vertically contatenate all of you data into a single column and use a [n x 2] grouping variable 'group' where group(:,1) identifies the G1, G2, G3 groups and group(:,2) identifies the column1 and column2 groups. Note that these groupings are also indicated in the x tick labels.
G1 = rand(108,2)-.5+[0,1];
G2 = rand(293,2)-.5+[2,4];
G3 = rand(30,2)-.5+[3,6];
group = [repelem([1;2;3],[numel(G1),numel(G2),numel(G3)]), ...
[repelem([1;2],size(G1,1));repelem([1;2],size(G2,1));repelem([1;2],size(G3,1))]];
boxplot([G1(:);G2(:);G3(:)],group)
  3 Comments
Adam Danz
Adam Danz on 29 Jul 2019
Edited: Adam Danz on 29 Jul 2019
Tip 1: x ticklabels with greek letters
boxplot(. . ., 'Labels',{'a' '\alpha' 'b' '\beta' 'g' '\gamma'})
axh = gca();
axh.XAxis.TickLabelInterpreter='tex';
Tip 2: add space between groups
boxplot(. . .,'FactorGap',[40,1])
Tip 3: add a divider line between groups
boxplot(. . .,'factorSeparator',1)
Tip 4: include greek letter in x axis label
xlabel('greek letter \alpha')

Sign in to comment.

More Answers (0)

Categories

Find more on Labels and Annotations in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!