How can I change the tick values on x axis?

Hello everyone,
I would like to put the tick label on x axis every 2 years instead of every 5 years. How can I do it?
Thank you!
LD = load('MODESTAMMEQ.mat');
MODESTAMMEQ = LD.MODESTAMMEQ;
dv = regexp(MODESTAMMEQ.Jan1989, '\d*\-\w*\-\d*','match');
MODESTAMMEQ.Var1 = datetime([dv{:}], 'InputFormat',"dd-MMM-yyyy").';
x = MODESTAMMEQ.Var1;
y = MODESTAMMEQ.Var2*10*0.35;
figure
plot(x, y)
grid

 Accepted Answer

Hi Pul,
You can use xticks to specify the values where you want the ticks to appear, and xticklabels to customize the labels themselves, if you wish.
In your case, you'll specify something like xticks([0 5 10 15]), etc.
Thanks,
Peter

4 Comments

Hello Peter,
I tried in this way: xticks([0 2 4 6]) because I need every 2 years, but I got this error: Tick values must be a vector of increasing datetime values.
Thank you.
How is Matlab supposed to know those values should be interpreted as datetime values? The error message is the hint: you should create a vector of datetime values you want as tick locations.
Hi Pul, this should get you started.
First, check out the value of xticks from your original plot:
>> ticks = xticks
ticks =
1×4 datetime array
2000 2005 2010 2015
Create a datetime array as Rik suggested:
newTicks = datetime({'2000','2002','2004','2006'},'InputFormat','u');
Use this to update the labels on the plot with xticks:
>> xticks(newTicks)
Thank you @Peter Bonavita.
The only problem is that then I can't plot my y with the new x, because they have a different length.
newTicks = datetime({'2000','2002','2004','2006','2008','2010','2012','2014','2016','2018'},'InputFormat','u');
xticks(''2000','2002','2004','2006','2008','2010','2012','2014','2016','2018');

Sign in to comment.

More Answers (0)

Categories

Asked:

Pul
on 8 Dec 2021

Commented:

Pul
on 8 Dec 2021

Community Treasure Hunt

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

Start Hunting!