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

7 views (last 30 days)
Hope it is possible with matlab to plot a stack of curves, better with hidden lines, like this attached figure:

Answers (3)

Kelly Kearney
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;
dy = 1;
ystaggered = bsxfun(@plus, y, (0:ny-1)*dy)
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
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.
  1 Comment
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.

Sign in to comment.

Star Strider
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.


Find more on Graphics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!