How to make a vertical label horizontal?

8 views (last 30 days)
Hi, I am trying to give each bar a label. However, when I try to do it, it displays the label vertically, but I would like to have it horizontally otherwise it doesn't fit.. Does anyone know how to do that?? Thanks!!!
x = 1:1:15;
y = vMean(1:15);
name = {'gross', 'comp', 'rate', 'inv', 'gross', 'comp', 'rate', 'inv', 'gross', 'comp', 'rate', 'inv','gross', 'comp', 'rate'}
figure(6);
bar(x,y);
set(get(gca, 'XTicklabel'),'rotation', name);
  1 Comment
Jan
Jan on 27 May 2018
Edited: Jan on 27 May 2018
Today I've edited your message to improve the readability. I've selected the code and pressed the "{} Code" button.

Sign in to comment.

Accepted Answer

Rik
Rik on 27 May 2018
How about this:
x = 1:15;
y = randi([10 30],size(x));
name = {'gross', 'comp', 'rate', 'inv', 'gross', 'comp', 'rate', 'inv', 'gross', 'comp', 'rate', 'inv','gross', 'comp', 'rate'};
figure(6);clf(6)
bar(x,y);
set(gca, 'XTick',min(x):max(x))
set(gca, 'XTickLabel',name)
set(gca,'XTickLabelRotation', 90)
  1 Comment
Jan
Jan on 29 May 2018
+1. It can be important to set the XTicks also. The output is confusing, if the number of Ticks differ from the number of TickLabels. This does not happen for bar plots, but it for a general solution it is safer, to define them both.

Sign in to comment.

More Answers (2)

Jan
Jan on 27 May 2018
Edited: Jan on 27 May 2018
set(get(gca, 'XTicklabel'),'rotation', name)
Almost. But:
get(gca, 'XTicklabel')
gets the strings of the XTickLabels as cell string. Not useful here. Better:
set(gca, 'XTicklabel', name, 'XTickLabelRotation', 90)
  1 Comment
Image Analyst
Image Analyst on 27 May 2018
Or, for versions later than R2014b
ax = gca;
ax.XTickLabel = name;
ax.XTickLabelRotation = 90;
if you want the OOP way of setting properties like other languages use.

Sign in to comment.


Laurel Borggreve
Laurel Borggreve on 28 May 2018
Great thank you guys!!

Community Treasure Hunt

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

Start Hunting!