필터 지우기
필터 지우기

How to avoid horizontal shifts after applying GroupByColor on boxcharts?

조회 수: 7 (최근 30일)
Brezelbayer
Brezelbayer 2023년 4월 19일
답변: Adam Danz 2023년 4월 19일
I'm trying to plot 5 boxcharts with 5 different boxcolors in one figure.
To get different colors im using the GroupByColor function as stated in the documentation.
The application of GroupByColor however leads to a horizontal shift of the boxplots.
How do I have to change my code to avoid the shift of my boxplots?
figure(1)
boxchart(xData,yData,'GroupByColor',xData,'BoxWidth',2)
grid on
'GroupByColor' not applied: correct position, wrong colors
'GroupByColor' applied: wrong position, correct colors

답변 (2개)

Adam Danz
Adam Danz 2023년 4월 19일
You can create the boxes in a loop,
y = magic(5);
[nrows, ncols] = size(y);
hold on
for i = 1:ncols
boxchart(repelem(i,nrows,1),y(:,1))
end

Cris LaPierre
Cris LaPierre 2023년 4월 19일
편집: Cris LaPierre 2023년 4월 19일
Typically, groups of boxplots share the same x value (see here and here). So what is happening is MATLAB is making room for one boxplot for each group at each x tick value, with the entire group centered around the x-tick.
It looks a little different in your plot because you have increased the box width.
I don't know of a way to modify individual boxcharts otherwise, and also don't see a way to change the position of a grouped boxchart.
If color is important, you may have better luck using boxplot. See here: https://www.mathworks.com/matlabcentral/answers/1705595-color-each-boxplot-differently

카테고리

Help CenterFile Exchange에서 Axis Labels에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by