Getting different plot ranges

11 views (last 30 days)
Trying to get time series plot of different days from dataset. Got help previoulsy but was only able to do day 1, when altering the code for day 2. It did not work. The csv file is opened, then columns are selected: Day 2 is from A61:D353, which then named glucose1_2 and is then imported to the workspace. Trying to get plot such as Day1 below for all remaining days of glucose.csv file.
Day 1 - A2:D60
Day2 - A61:D353
Day 3 - A354:D646
Day 4- A647:D940
Day 5 - A941:D1234
Day 6- A1235:D1439
glucose1_2.date.Format = 'dd.MM.uuuu HH:mm';
glucose1_2.time.Format = 'hh:mm:ss.S';
glucose1_2.date = [glucose1_2.date glucose1_2.time];
glucose1_2.glucose = glucose1_2.glucose*18;
Unrecognized field name "glucose".
plot(glucose1_2.date,glucose1_2.glucose);
grid on; legend('Patient1, Day1');
xlabel('Date and Time'); ylabel('Serum Glucose Level (mg/dl)');

Accepted Answer

William Rose
William Rose on 19 Dec 2021
Edited: William Rose on 19 Dec 2021
T=readtable('glucose.csv'); %read file into table T
You will see that T has columns named date, time, glucose.
Line below plots glucose vs. time for the rows which have date=2014-10-01.
plot(T.time(T.date=='2014-10-01'),T.glucose(T.date=='2014-10-01'));
Line below plots glucose vs. time for day 2: the rows which have date=2014-10-02. And so on.
plot(T.time(T.date=='2014-10-02'),T.glucose(T.date=='2014-10-02'));
Good luck with your work!
  3 Comments
William Rose
William Rose on 20 Dec 2021
@Nathaniel Porter, yes you can. Multiply y-values by 18 in the plot command. Include labels with units.
plot(T.time(T.date=='2014-10-02'),18*T.glucose(T.date=='2014-10-02'));
xlabel('Time (hours)'); ylabel('Plasma glucose (mg/dL)');
Try.

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by