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?

 Réponse acceptée

dpb
dpb le 13 Nov 2021
Modifié(e) : dpb le 13 Nov 2021

0 votes

  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 commentaires

Imran Kanjoo
Imran Kanjoo le 13 Nov 2021
I see the space between the two boxes is much higher than it should be.
dpb
dpb le 13 Nov 2021
Modifié(e) : dpb le 14 Nov 2021
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 le 14 Nov 2021
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 le 14 Nov 2021
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by