Andi
Andi

Reputation: 4855

MATLAB: plot timetable matrix

I would like to plot all columns of a timetable. For example, let's say, I have a timetable with two columns.

time = datetime({'2017-11-15'; '2017-11-18'; '2017-11-19'});
col1 = [NaN;4;5];
col2 = [7;6;4];
tt = timetable(time, col1, col2);

How can I plot all columns (line chart)?

Let me add three things:

  1. I don't know the column titles in advance.
  2. I don't know the number of columns in advance.
  3. The first columns might not necessarily be the longest column (see NaN).

Upvotes: 1

Views: 3598

Answers (3)

sdeland
sdeland

Reputation: 56

It's worth nothing that as of version R2018b, the stackedplot function makes this a lot easier:

stackedplot(tt)

Upvotes: 1

Andi
Andi

Reputation: 4855

There's an even less complicated version. :-)

plot(tt.time, tt.Variables);

Upvotes: 3

Andy Campbell
Andy Campbell

Reputation: 2187

Take a look at varfun:

>> ax = axes('NextPlot','add');
>> varfun(@(v) plot(ax,tt.time, v), tt)

Upvotes: 1

Related Questions