pre-set axis limit to datetime
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi:
I have a figure and I want to set the x-axis to 'datetime' type before add any plot there, below is the code:
figure
ax=gca;
ax.XLim=[datetime('now'),datetime('now')+day(1)]
Matlab reported error like below:
Value must be a 1x2 vector of numeric type in which the second element is greater than the first element or is Inf.
however, the code below works:
figure
ax=gca;
ax.XLim=[1,2]
and the code below works:
ax=gca;
ax.XLim=[1,2]
figure
plot([datetime('now'),datetime('now')+day(1)],[1,1])
so, it seems like the Matlab do not accept set the x-axis to datetime if no 'datetime' type plot added to the figure.
is there anyway can address this issue?
Thanks!
Yu
0 commentaires
Réponse acceptée
Seth Furman
le 25 Fév 2022
The axis ruler can be set directly to a DatetimeRuler.
ax = axes;
ax.XAxis = matlab.graphics.axis.decorator.DatetimeRuler;
ax.XLim = [datetime(2020,1,1) datetime(2020,1,2)];
4 commentaires
VBBV
le 19 Fév 2023
Modifié(e) : VBBV
le 19 Fév 2023
figure
ax=gca;
ax.XAxis = matlab.graphics.axis.decorator.DatetimeRuler;
plot(ax,[datetime('now','TimeZone', 'America/New_York'),datetime('now','TimeZone', 'America/New_York')+day(2)])
cla(ax)
ax.XLim = [datetime('now','TimeZone', 'America/New_York'),datetime('now','TimeZone', 'America/New_York')+day(2)]
ax.YLim = [ 0 1]
if cla(ax) is used as told, it still produces the same error
Steven Lord
le 19 Fév 2023
If you don't want a visible line on your axes you could plot using NaN as the Y data.
N = datetime('now','TimeZone', 'America/New_York');
plot(N, NaN);
xlim([N, N+days(2)])
ylim([0 1]);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Polar Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!