how to use plotyy with x-axis cell data type ruther than double.

5 views (last 30 days)
I would like to plot a double axis figure using plotyy. the x-axis is cell type while the two y-axises are double type
x={10:00; 11:00; 12:00; 13:00}
y1=[1 2 3 4]
y2=[4 5 6 7]

Answers (1)

Voss
Voss on 7 Aug 2023
I assume that x is not a cell array of empty arrays, as in:
x={10:00; 11:00; 12:00; 13:00}
x = 4×1 cell array
{1×0 double} {1×0 double} {1×0 double} {1×0 double}
but rather a cell array of datetimes, as in:
x=num2cell(datetime({'10:00'; '11:00'; '12:00'; '13:00'},'InputFormat','HH:mm','Format','HH:mm'))
x = 4×1 cell array
{[10:00]} {[11:00]} {[12:00]} {[13:00]}
In that case, you can plot like this:
y1=[1 2 3 4]
y1 = 1×4
1 2 3 4
y2=[4 5 6 7]
y2 = 1×4
4 5 6 7
x_plot = [x{:}]
x_plot = 1×4 datetime array
10:00 11:00 12:00 13:00
plotyy(x_plot, y1, x_plot, y2)
  3 Comments
Voss
Voss on 10 Aug 2023
% a cell array of character vectors:
tim = {
'10:00'
'10:15'
'10:30'
'10:45'
'11:00'
'11:15'
'11:30'
'11:45'
'12:00'
'12:15'
'12:30'
'12:45'
'13:00'
'13:15'
'13:30'
'13:45'
'14:00'
};
% convert to a datetime array:
x = datetime(tim,'InputFormat','HH:mm');
% some y values to plot with
y1=1:numel(x);
y2=3:numel(x)+2;
% plot
plotyy(x, y1, x, y2)

Sign in to comment.

Categories

Find more on Two y-axis in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!