I need to plot precipitation data. First, adjust y limits of a stacked plot to accommodate totals for the month. Second, have dates on the x axis.

2 次查看(过去 30 天)
I have a working script (see below), however, I'm not familiar with setting ylimits of a stacked plot since it's the only plot function that seems to work for me. I would also like to take column one data and plot it on the x axis. Precipitation must be in hundreths of units.
close all;
clear all;
clc;
tbl = readtable('March_Precipitation');
P = tbl(:,2);
s = stackedplot(P)
S.LineWidth = 2;

采纳的回答

Cris LaPierre
Cris LaPierre 2024-4-12
What do you want your YLims to be?
As for dates, if your X data is a datetime, then your x axis will display dates.
tbl = readtable('March_Precip.xlsx','TextType','string');
tbl.Properties.VariableNames = ["Date","Precipitation"];
tbl.Precipitation = double(tbl.Precipitation);
plot(tbl, 'Date','Precipitation')
  3 个评论
Cris LaPierre
Cris LaPierre 2024-4-12
Is there something about a stackedplot that you cannot achieve with a regular plot? Otherwise, just use a regular plot and ylims as you normally would.
I've updated the plot command to use the plot(x,y) syntax instead.
tbl = readtable('March_Precip.xlsx','TextType','string');
tbl.Properties.VariableNames = ["Date","Precipitation"];
tbl.Precipitation = double(tbl.Precipitation);
plot(tbl.Date,tbl.Precipitation)
ylim([3 5])
Jonathon Klepatzki
Jonathon Klepatzki 2024-4-12
Na, I tried to use a regular plot before I posted this and it didn't work. The error specifically said to use stacked as a suggestion. I appreciate your help!

请先登录,再进行评论。

更多回答(1 个)

Star Strider
Star Strider 2024-4-12
Convert the table to a timetablee and ‘Column2’ will automatically be plotted as a funciton of the time variable.
However I don’t understand ‘Precipitation must be in hundreths of units.’. It can be transformed easily enough by multiplying ‘Column2’ by a constant. The y-tick values (or labels) can also be transformed as easily. What changes need to be made?
Try this —
F = openfig('Precip.fig');
F.Visible = 1;
T1 = readtable('March_Precip.xlsx');
T1.Column2 = str2double(T1.Column2);
TT1 = table2timetable(T1)
TT1 = 2978x1 timetable
Column1 Column2 ____________________ _______ 01-Mar-2024 00:00:00 3.222 01-Mar-2024 00:15:00 3.222 01-Mar-2024 00:30:00 3.222 01-Mar-2024 00:45:00 3.222 01-Mar-2024 01:00:00 3.222 01-Mar-2024 01:15:00 3.222 01-Mar-2024 01:30:00 3.221 01-Mar-2024 01:45:00 3.222 01-Mar-2024 02:00:00 3.222 01-Mar-2024 02:15:00 3.222 01-Mar-2024 02:30:00 3.222 01-Mar-2024 02:45:00 3.222 01-Mar-2024 03:00:00 3.222 01-Mar-2024 03:15:00 3.222 01-Mar-2024 03:30:00 3.222 01-Mar-2024 03:45:00 3.222
figure
stackedplot(TT1)
.
  3 个评论
Cris LaPierre
Cris LaPierre 2024-4-13
For a timetable, I suggest reading the Excel file using readtimetable
TT = readtimetable('March_Precip.xlsx','TextType','string');
TT.Properties.VariableNames = ["Precipitation"];
TT.Precipitation = str2double(TT.Precipitation);
stackedplot(TT)
ylim is not supported for stackedplot, but there is a workaround. See this Answer.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by