Boxplots in the same figure

Hi everyone
How can I compaine two boxplots in the same figure for this code?
figure
sgtitle('main graph')
subplot(1,2,1);
boxplot(X,'first')
ylabel('timer')
grid on
subplot(1,2,2);
boxplot(Y,'Second')
ylabel('timer')
grid on
I've tried used solution in below link but still I have problem:
I've tried:
figure
hold on
x=[X;Y];
boxplot(x(1,:),'first')
boxplot(x(2,:),'secondl')
hold off
ylabel('timer')
title('main graph')
also I've tried this solution but still there are error
= [16 20 15 17 22 19 17]';
B = [22 15 16 16 16 18]';
C = [23 9 15 18 13 27 17 14 16 15 21 19 17]';
group = [ ones(size(A));
2 * ones(size(B));
3 * ones(size(C))];
figure
boxplot([A; B; C],group)
set(gca,'XTickLabel',{'A','B','C'})

4 Comments

Welcome to the forum @NOUF ALHARBI. I've formatted your code using the the rich text editor but I haven't changed any of it. You'll notice some errors in red which are probably copy-paste errors.
Anyway, it's unclear how you would like to combine the boxplots and how many are in each group. An image would be nice, or at least a description.
Using a grouping variable is one option. Another option is using the "positions" property.
Hi Adam thank you so much,
I've two array I can put them in subplot as boxplot but I need to put it them in the same figue.
Thanks, but it's still not clear. Let's say subplot A has 3 boxs and subplot B has 3 boxs. Do you want
[AB AB AB] or [ABABAB]
or
[AAA BBB] or [AAABBB]?
NOUF ALHARBI's answer moved here as a comment
----------------------------------------------------------------------
Subplot A has 1 box and subplot B has 1 box so just I want [A B]
but apeared to me like this:

Sign in to comment.

 Accepted Answer

Method 1: set position along x-axis
Use the positions property in boxplot to set the box x-coordinates.
A = rand(10,1);
B = rand(8,1);
hold on
boxplot(A, 'Positions', 1)
boxplot(B, 'Positions', 2)
% Set desired xtick, xticklabels, and xlim
set(gca,'XTickMode','auto','XTickLabelMode','auto','XLimMode','auto')
Method 2: Combine columns of data
Vectors must have the same length. Pad shorter vectors with NaN values to equate lengths, if necessary.
A = rand(10,1);
B = rand(10,1);
data = [A(:),B(:)];
figure
boxplot(data)

4 Comments

Many thanks Adam Danz, but how can I change names in x-coordinates? I want right the name of each .
I used this
A = rand(10,1);
B = rand(8,1);
hold on
boxplot(A, 'Positions', 1)
boxplot(B, 'Positions', 2)
% Set desired xtick, xticklabels, and xlim
set(gca,'XTickMode','auto','XTickLabelMode','auto','XLimMode','auto')
For method 1
set(gca,'XTick',1:2,'XTickLabel',{'Group 1', 'Group 2'},'XLim', [0.5,2.5])
For method 2
boxplot(data,'labels',{'Group1','Group2'})
Happy to help!

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Asked:

on 11 Feb 2022

Commented:

on 11 Feb 2022

Community Treasure Hunt

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

Start Hunting!