I have several 2D-plots in MATLAB. In each plot there are some lines (each line is a row-vector of values of fixed length). There is always a base line (black one) and the remaining colored lines may or may not be present.
,
.
I need to concatenate all such plots into one plot as shown below:
Please note these are just for representational purpose but explain my problem well. I am not able to figure how to do it. Anybody got an idea? An example may be? Also, there has to be a vertical gap between the successively concatenated plots as is shown in last figure. Some points to note:
Also, since each colored line corresponds to a specific kind of data, how to create its legend? Thanks!
I see two options here: 1. concatenate to the same plot and pad with NaNs to obtain the gap. 2. actually have several plots and use axes
in a clever way.
Here's an example for option 1, First we'll create some fake data:
a1=rand(1,20);
b1=3+rand(1,20);
c1=6+rand(1,20);
a2=rand(1,20);
b2=3+rand(1,20);
c2=6+rand(1,20);
a3=rand(1,20);
b3=3+rand(1,20);
c3=6+rand(1,20);
This is just for padding with NaNs...
f=@(x) [ NaN(1,round(numel(x)/5)) x ];
Concatenating:
y1=[f(a1) f(a2) f(a3)];
y2=[f(b1) f(b2) f(b3)];
y3=[f(c1) f(c2) f(c3)];
plotting
x=1:numel(y1);
plot(x,y1,x,y2,x,y3);
set(gca,'XTickLabel',[]);