Plot date labels in x-axis

16 views (last 30 days)
hmhuang
hmhuang on 9 Sep 2021
Answered: Walter Roberson on 9 Sep 2021
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

Categories

Find more on Discrete Data Plots 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!