how to put variable xtick label in MATLAB plot?

10 views (last 30 days)
Hello,
I have multiple files starting from different start and end year and I would like to show it in the figure output from a loop. How to show the start and end year in custom wise.
for example, Startyear = 1918 & endyear = 1982 at a time step of 5
set(gca,'Xtick',sprintf('%s%s', num2str(Startyear): 5: num2str(Endyear - windowlength)))

Accepted Answer

Cam Salzberger
Cam Salzberger on 19 Oct 2017
Edited: Cam Salzberger on 19 Oct 2017
Hello Poulomi,
The 'XTick' property must be numeric, and indicates to the axes where to place the tick marks.
The 'XTickLabel' property indicates what to display for labels. I believe this is the property you wish to modify. If there are tick marks for which you do not wish to display labels, you'll want to give them an empty character array or empty string to display. XTickLabel must have the same length as XTick.
-Cam
  4 Comments
Poulomi Ganguli
Poulomi Ganguli on 19 Oct 2017
yea but in my case some times years ranging between 1900 to 2013 and in some cases mere 1960 to 2012. For each iteration I am using a forloop and there is no date and month only years. As you mentioned one way could be to use datetime array, how to use it for the above case, I mean variable way in a forloop.
Cam Salzberger
Cam Salzberger on 19 Oct 2017
Edited: Cam Salzberger on 19 Oct 2017
If you don't have month/day data, you can just say January 1 as a default. It might be misleading, but no more so than when you create a datetime with no hour/minute/second data.
y = 1960:2012;
d = datetime(y, ones(size(y)), ones(size(y)), ...
'Format', 'yyyy');
vals = rand(size(d));
plot(d, vals)
set(gca,'XTick',d(1:5:end))

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!