Plot date labels in x-axis

3 views (last 30 days)
I have a plot with dates in form of mm/dd as x-axis data. Now I have
xData = ["01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"]
which is a string array of size 1 x 8.
How do I plot with
yData = [557 655 941 1433 2118 2927 5578 6167]
by using something like
plot(xData, yData)
with ["01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"] as the x-axis tick labels?
Currently I got the error messages "Error using plot.
Not enough input arguments." when running plot(xData, yData) as above, which I don't know what it exactly means.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Sep 2021
xData = ["01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"]
xData = 1×8 string array
"01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"
yData = [557 655 941 1433 2118 2927 5578 6167]
yData = 1×8
557 655 941 1433 2118 2927 5578 6167
x = datetime(xData, 'inputFormat', 'MM/dd', 'Format', 'MM/dd')
x = 1×8 datetime array
01/22 01/23 01/24 01/25 01/26 01/27 01/28 01/29
plot(x, yData)

More Answers (1)

Chunru
Chunru on 9 Sep 2021
xData = ["01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"]
xData = 1×8 string array
"01/22" "01/23" "01/24" "01/25" "01/26" "01/27" "01/28" "01/29"
yData = [557 655 941 1433 2118 2927 5578 6167]
yData = 1×8
557 655 941 1433 2118 2927 5578 6167
% Convert the string to datetime
x = datetime(xData, 'InputFormat', 'MM/dd')
x = 1×8 datetime array
22-Jan-2021 23-Jan-2021 24-Jan-2021 25-Jan-2021 26-Jan-2021 27-Jan-2021 28-Jan-2021 29-Jan-2021
plot(x, yData)
datetick('x', 'mm/dd') % note the different case for month

Community Treasure Hunt

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

Start Hunting!