MATLAB Answers

Change the color of each group in boxplotGroup

38 views (last 30 days)
Behzad Navidi
Behzad Navidi on 27 Jul 2020
Commented: Behzad Navidi on 28 Jul 2020
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.

  0 Comments

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 27 Jul 2020
"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))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.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!