How do we edit xticks datetime format?

2 views (last 30 days)
Daniel Bridges
Daniel Bridges on 28 Mar 2017
Answered: Jatin on 5 Sep 2024
I am trying to increase the number of date tick marks on a graph,
but I cannot change the resulting datetime format:
Code that I think ought to work to obtain this result doesn't. I have tried the following (with a different initial datetime):
xticks(linspace(datetime('1234-11-06'),datetime('2067-04-25'),6))
xticks(linspace(datetime('06-Nov-1234','Format','yyyy-MM-dd'),datetime('25-Apr-2067','Format','yyyy-MM-dd'),5))
xticks(linspace(datetime('1234','InputFormat','y','Format','y'),datetime('2067','InputFormat','y','Format','y'),8))
xticks(linspace(datetime('1234','InputFormat','y','Format','yyyy-MM-dd'),datetime('2067','InputFormat','y','Format','yyyy-MM-dd'),8))
What is the problem? How do I increase the number of dates?
  1 Comment
Steven Lord
Steven Lord on 28 Mar 2017
Which release are you using?
How did you create the plot? Did you plot with numeric or datetime X data? It can make a difference.

Sign in to comment.

Answers (1)

Jatin
Jatin on 5 Sep 2024
The “xticks” function you are trying to use is meant to set or query x-axis tick values, it doesn’t provide you ways to format the way tick values appear.
In your use case, If you are using a version of MATLAB R2023b or prior, you can use “datetick” which lets you specify the format you want to use in for dates. Here is an example code to use “datetick”:
% Define start and end dates
startDate = datetime('1234-11-06', 'Format', 'yyyy-MM-dd');
endDate = datetime('2067-04-25', 'Format', 'yyyy-MM-dd');
% Generate tick positions
numTicks = 6; % Adjust this number to change the number of ticks
tickPositions = linspace(startDate, endDate, numTicks);
% Example plot
figure;
plot([startDate, endDate], [0, 1]);
hold on;
% Set the x-ticks
xticks(tickPositions);
% Optionally, format the x-tick labels
ax = gca; % Get current axes
ax.XTickLabelRotation = 45; % Rotate labels if they overlap
% Display the plot
datetick('x', 'yyyy-mm-dd', 'keepticks');
From version R2024a, the function “datetick” is not recommended, you can use the function “xtickformat” which lets you configure the tick label formats for different values including dates. Here is how you can use “xtickformat”:
% Display the plot
xtickformat('yyyy-MM-dd');
You can also go through the documentation of “datetick” and “xtickformat” for more details:
Hope this helps!

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!