xlim function error. i have seen on video, the codes were working but with me it is not working
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yusuf Suer Erdem
am 29 Jun. 2021
Kommentiert: Yusuf Suer Erdem
am 2 Jul. 2021
**My codes are below. I get that error: "Error using xlim (line 31) Limits must be a 2-element vector of increasing numeric values."
Also xtickformat function gives me eror. Can you help me? Thanks**
clc; clear; close all;
dates=datetime(2025,8,17)+calmonths(2:11)+calweeks(0:9)
xlim(datetime([2025 2026],[11 5],[12 23]))
xtickformat('dd-MMM-yyyy')
0 Kommentare
Akzeptierte Antwort
dpb
am 29 Jun. 2021
You're trying to set axis limits on a numeric axes with datetime values -- no can do...
dates=datetime(2025,8,17)+calmonths(2:11)+calweeks(0:9); % create your date vector
figure % make new figure so is clean
xlim(datetime([2025 2026],[11 5],[12 23])) % try your operation
xtickformat('dd-MMM-yyyy')
Error using xlim (line 31)
Limits must be a 2-element vector of increasing numeric values.
>>
And, as you saw, boom! Because the default axes created is numeric -- and xlim isn't strong enough to change them to a DatetimeRuler object on its own.
>> plot(dates,randn(size(dates))) % plot a datetime object first
>> xlim(datetime([2025 2026],[11 5],[12 23])) % now you can set the limits as wanted
>>
MORAL: Always make sure you've got the right type of axes object first -- with datetime, need to have put some data on the axes first with plot() or other higher-level function to create the proper type.
6 Kommentare
Weitere Antworten (1)
Steven Lord
am 29 Jun. 2021
I would expect to see that error if you'd plotted with non-datetime data as your X data. If for example you'd plotted these points:
x = 1:10;
y = x.^2;
plot(x, y)
How much of that plot would you expect to see if I set the X limits from last Thursday to next Saturday?
T = datetime('today');
lastThursday = dateshift(T, 'dayofweek', 'Thursday', 'previous')
nextSaturday = dateshift(T, 'dayofweek', 'Saturday', 'next')
plot(x, y)
xlim([lastThursday, nextSaturday]);
You haven't specified what error message you received when you tried calling xtickformat but I'm guessing the root cause is the same: you can't change numbers on the X axis into dates and times.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Specifying Target for Graphics Output finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!