How to change the x axis labels of a plot so that they only show integer values

Id like to make the x axis labels so that it just shows 1,2,3,4,5,6. But id like to make sure this is general so in my code if the user were to input 10 years lets say, the x axis labels would be 1,2,3,4,5,6,7,8,9,10.
Thanks!

3 Comments

What datatype is the x axes? duration()? Or is it double and you are using datetick() ?
the x values are a vector. Im not sure what you mean by duration, double and datetick. I am a beginner to a matlab, so I dont know what terminology youre referring to.

Sign in to comment.

Answers (2)

ax = gca;
ax.Xticks = unique( round(ax.XTicks) );

2 Comments

Hi, thanks for your response, however, it doesnt seem to work. What is ax? Is that the name of the x vector?Matlab also says that it doesnt recognize XTicks.
ax is a variable assigned the result of gca . gca is a function that returns a handle to the current axes. So ax will be assigned a handle to the current axes.
ax = gca;
ax.XTick = unique( round(ax.XTick) );

Sign in to comment.

curtick = get(gca, 'xTick');
xticks(unique(round(curtick)));

2 Comments

Note: this requires R2016b or later. For earlier releases, especially before R2015b, it would look like,
curtick = get(gca, 'XTick');
set(gca, 'XTick', unique(round(curtick)))
ax.YAxis(2).TickLabels= unique( round(ax.YAxis(2).TickValues) )

Sign in to comment.

Tags

Asked:

on 15 Nov 2019

Community Treasure Hunt

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

Start Hunting!