Color each boxplot differently
134 次查看(过去 30 天)
显示 更早的评论
I found an example that allows you to color with random colors. However, I want to color the inside of each boxplot with a certain color.
a = magic(3);
boxplot(a)
i = 3; % number of boxplots
x = 1:i;
colors = rand(i, 3);
figure
boxplot(a, x,'Whisker', inf);
h = findobj(gca,'Tag','Box');
for j=1:length(h)
patch(get(h(j),'XData'),get(h(j),'YData'),colors(j,:),'FaceAlpha',.5);
end

I would also like to make the lines thicker. How can I do this?
0 个评论
回答(2 个)
Jon
2022-4-26
I think this should get you closer to what you want. You can select other colors using their rgb color codes, I just used red,green and blue in the example
a = magic(3);
boxplot(a)
i = 3; % number of boxplots
x = 1:i;
colors = [1 0 0;0 1 0;0 0 1];
figure
boxplot(a, x,'BoxStyle','outline','Colors',colors);
h = findobj(gca,'Tag','Box');
for j=1:length(h)
patch(get(h(j),'XData'),get(h(j),'YData'),get(h(j),'Color'),'FaceAlpha',.5);
end
3 个评论
Jon
2022-4-26
If you are running R2020A or higher you may want to investigate boxchart. It seems to offer the options you want more directly
Baldvin
2025-11-13,20:45
As has been pointed out, boxchart (documentation) was introduced in R2020a and offers flexibility with coloring of the face of boxes (and much more):
a=magic(3);
b=boxchart(a(:),'GroupByColor',repelem(1:3,3));
get(b,'BoxFaceColor')
This property enables you to do exactly what you want to do. For example, if you wanted to change the color of the first blue box, b(1).BoxFaceColor = 'm';
BoxChart Properties documentation, especially the "Color and Styling" section, shows many more properties that might be of interest.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

