# How to plot a stack of curves in Matlab, as attached figure?

3 views (last 30 days)
John on 27 Nov 2013
Edited: Kelly Kearney on 12 Jun 2014
Hope it is possible with matlab to plot a stack of curves, better with hidden lines, like this attached figure: Kelly Kearney on 12 Jun 2014
Edited: Kelly Kearney on 12 Jun 2014
The easiest way is probably just to add a small offset to the ydata:
nx = 100;
ny = 50;
ysig = rand(nx,1);
x = 1:(nx+ny);
y = nan(nx+ny,ny);
for ii = 1:50
y(ii:(ii+nx-1),ii) = ysig;
end
dy = 1;
ystaggered = bsxfun(@plus, y, (0:ny-1)*dy)
figure('color','k');
axes('color', 'k', 'xcolor','w');
line(x, ystaggered);
You could also try creating a lot of overlapping axes (as with plotses).
figure('color', 'k');
[hl,ha] = plotses(x,y);
set(ha, 'xcolor', 'w', 'ycolor', 'k');
set(ha(2:end), 'visible', 'off');

Walter Roberson on 27 Nov 2013
That appears to be a waterfall plot. Which is actually a mesh plot with lines drawn only in one direction.
John on 12 Jun 2014
waterfall will not do that well. 1) waterfall is a 3D looking with view angles; 2) if plot black, the baseline will be plot, very ugly and messy; 2) with 'column' or 'raw' line only, there are missing sections.
Anyways, the water fall isn't a good way. Above is plot with IDL.

Star Strider on 12 Jun 2014
My choice would be to use a ribbon plot. Then play with the plot parameters until it looks the way you want it to.