I use following code to create the boxplot. I want to change the distance between the two boxes. However, I cant find any property to control the distance.
rng default % For reproducibility
x = randn(100,15);
figure
boxplot(x,'PlotStyle','compact')
set(gca,'FontSize',10,'XTickLabelRotation',90)
Also, the XTickLabelRotation does not change the xtick label orientaiton. How can I change orientaion?

 채택된 답변

dpb
dpb 2021년 11월 13일
편집: dpb 2021년 11월 13일

0 개 추천

  1. boxplot doesn't support variably-spaced box locations.
  2. use 'LabelOrientation','Horizontal' to maintain normal tick label orientation.
On the latter, why TMW chose to create a different name for the property instead of maintaining consistency with all other plotting routines is one of those maddening inconsistencies they love to introduce -- more and more so recently, it seems.
I suppose it goes to the specialized plot that's to be easy to use and so doesn't need/shouldn't have all the bells and whistles of a generic axes object. So, they provide the two choices of rotated or not with a different name. I suppose there is some logic there...

댓글 수: 4

Imran Kanjoo
Imran Kanjoo 2021년 11월 13일
I see the space between the two boxes is much higher than it should be.
dpb
dpb 2021년 11월 13일
편집: dpb 2021년 11월 14일
That's totally dependent upon the number of boxes and the size of the axes object -- boxplot spreads them across the given axes size.
subplot(2,1,1)
boxplot(randn(100,15),'PlotStyle','compact','LabelOrientation','horizontal')
subplot(2,1,2)
boxplot(randn(100,25),'PlotStyle','compact','LabelOrientation','horizontal')
produces
Alternatively,
boxplot(randn(100,15),'PlotStyle','compact','LabelOrientation','horizontal')
hAx=gca; hAx.Position(3)=hAx.Position(3)*15/25;
Reduce the width of the axes object.
I don't know what other behavior one would expect -- otherwsie the axis box would be left with a bunch of empty space if the number of bars plotted aren't spread out over the axis.
I suppose it is possible they could have implemented it at a given spacing and let the axes follow, but that doesn't match the behavior of any other plotting routine--they're chiildren of the axis, so they fill what they find.
Imran Kanjoo
Imran Kanjoo 2021년 11월 14일
Hi, thanks for reducing the width of the axes object. The last lines of codes work for me. How can I reduce the verticle axes height?
dpb
dpb 2021년 11월 14일
The position vector is a 4-vector of [left bottom width height]. Adjust as desired. See the doc on axes properties for all the details.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품

릴리스

R2018b

태그

질문:

2021년 11월 13일

댓글:

dpb
2021년 11월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by