MATLAB: How to specify an axes when plotting timeseries data

axesMATLABplottimeseries

I cannot use the plot function on timeseries data with an axis handle as the first input. I use timeseries data a lot and use the plot command with it. However, I cannot plot a timeseries directly to a particular axis unless I manually specify the time and data vector. See below code:
>> x = timeseries([10;15;18;28],[0; 1; 2; 3])
>> figure
>> h1 = gca
>> plot(h1,x) % does not work
>> plot(h1,x.Time,x.Data) % this does work. This is not ideal

Best Answer

The "plot" function invokes different methods of plotting depending on the input data provided. Since this is timeseries data, the syntax for plotting the timeseries to a particular axis in this example would look like the following:
>> plot(x, 'Parent', h1)
This is because the timeseries plotting function uses the syntax:
plot(ts,specs)
where "specs" refers to the Line Specifications as a 'Name', 'Value' pair. This is not entirely obvious since the "plot" documentation specifies axes as the first input. More information on this syntax may be found at the documentation link below: