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 Ansichten (letzte 30 Tage)
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;

Akzeptierte Antwort

Cris LaPierre
Cris LaPierre am 12 Apr. 2024
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 Kommentare
Cris LaPierre
Cris LaPierre am 12 Apr. 2024
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 am 12 Apr. 2024
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!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Star Strider
Star Strider am 12 Apr. 2024
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 Kommentare
Cris LaPierre
Cris LaPierre am 13 Apr. 2024
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by