How do I use text for ticks on X axis?

I have a loop that gives a variable a different name:
EX
i = 1;
while i < 5
if i == 1
name = 'CRHS';
elseif i == 2
name ='ELLY';
elseif i == 3
name = 'LGWD';
elseif i ==4
name = 'ECFS';
elseif i ==5
name = 'THMS';
end
i = i + 1;
end
I want to plot a figure using the 'name' variable as the corresponding X tick. For example for tick 1, use 'CRHS', tick 2 use 'ELLY', etc.
How can I do this?

 Accepted Answer

names = {'CRHS'; 'ELLY'; 'LGWD'; 'ECFS'; 'THMS'};
plot(...
set(gca,'xtick',[1:5],'xticklabel',names)
Set the tick values vector to appropriate numerical values dependent on the axis limits, of course. I just used the position values for demo porpoises...

9 Comments

Perfect! Thank you!
Thanks...It really works... I was searching of such a function ..Thanks again
hey, how can I write the label vertically and not horizontaly? the ticks go on top of each other when they're horizontal.
thank you
Use the [X|Y]TickLabelRotation property.
How can I get each name that has more than one row? Something like...
'CRHS
Age-10yrs'
The expectation is that each string contains 2 or 3 pieces of information.
Thanks
Embed the newline '\n' in the string. Building with sprintf is often handy here.
Is there any way to label all the tics but dynamically display them? For example you label x points 1:10 but if the plot is sized down by the user, some of the labels dissapears to fit? Similar to the default functionality matlab has with automatic axis resizing
Once you write the tick labels manually you've broken the link between the tick marks and the tick labels; no automagic updating will happen after that.
You would have to write callback routines to handle the tick labels to go along with the ticks as wanted.

Sign in to comment.

More Answers (0)

Asked:

on 9 Apr 2014

Commented:

dpb
on 22 Jul 2021

Community Treasure Hunt

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

Start Hunting!