# Change the color of each group in boxplotGroup

129 views (last 30 days)
BN on 27 Jul 2020
Edited: Adam Danz on 2 Dec 2021
I used Adam Danz's boxplotGroup to making two groups of box charts;
data = {rand(100,2), rand(100,2)+.2, rand(100,2)-.2};
boxplotGroup(data, 'PrimaryLabels', {'a' 'b' 'c'}, ...
'SecondaryLabels',{'Group1', 'Group2'}, 'GroupLabelType', 'Vertical')
Now my question is: is it possible to have 2 separate colors for these two groups that I have here? Like first group box be blue and the second is red?
Is it possible to have both a in each group green; and have both b in each group yellow?
Thank you so much.

Adam Danz on 27 Jul 2020
Edited: Adam Danz on 2 Dec 2021
"Is it possible to have both a in each group green; and have both b in each group yellow?"
Yes. Use the "colors" propery but include an extra color that will not appear to account for the gap which is actually a box plot of all NaN values that doesn't appear. Since you have 2 groups of 3 plots, set 4 different colors.
data = {rand(100,2), rand(20,2)*.8, rand(1000,2)*1.2};
boxplotGroup(data, 'Colors', lines(4)) % See image below
% Or
% data = {rand(100,2), rand(20,2)*.8, rand(1000,2)*1.2};
boxplotGroup(data, 'Colors', lines(4))
% or
boxplotGroup(data, 'Colors', 'rcmk') % string arrays also accepted
Alternatively, you can set the colors after creating the grouped box plot.
data = {rand(100,2), rand(20,2)*.8, rand(1000,2)*1.2};
h = boxplotGroup(data);
set(h.axis.Children(1).Children,'Color', 'r')
set(h.axis.Children(2).Children,'Color', 'k')
set(h.axis.Children(3).Children,'Color', 'g')
Image of first example
"is it possible to have 2 separate colors for these two groups that I have here?"
Not with this function. You might want to explore Matlab's boxplot function using the grouping variable and the ColorGroup property.
BN on 28 Jul 2020
I am really thank you

R2020a

### Community Treasure Hunt

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

Start Hunting!