MATLAB Answers

How can I modify the datetime ticks used in heatmaps

14 views (last 30 days)
I am using datetime ticks to represent the x-axis as given in the following MWE code.
%% random heatmap
h1 = heatmap(rand(60))
%% generating the array for the x axis
tstart = datetime(2020,08,21,15,01,0);
tend = datetime(2020,08,21,16,00,0);
x_time = tstart: minutes(1): tend
x_time.Format = 'HH:mm'
%% changing the x ticks to be the time
h1.XDisplayLabels = x_time ;
Instead of displaying all the xtick labels, how can I only show the xtick labels every 10 mins, something similar to this {15:10, 15:20, ...}.
I tried this, but using mode function is impossible with datetime date I guess.
In addition to that, I want to change the ticks in the colorbar of the heatmap to be something like 'foo 0.1' instead of 0.1.
Could you please help me to sort this out ?
Thank you.

  0 Comments

Sign in to comment.

Accepted Answer

Jyotsna Talluri
Jyotsna Talluri on 25 Aug 2020
The below code helps
CustomXLabels = string(x_time);
% Replace all but the tenth elements by spaces
CustomXLabels(mod(minute(x_time),10) ~= 0) = " ";
% Set the 'XDisplayLabels' property of the heatmap object 'h1' to the custom x-axis tick labels
h1.XDisplayLabels = CustomXLabels;
axs = struct(gca);
cb = axs.Colorbar;
cb.TickLabels = {'foo 0.1','foo 0.2','...'};

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!