Plot 3D data as series of slices in specified axis
Updated 19 Jan 2018

View License

Rather than plotting a 3D volume, instead plot a series of slices.
Like surf() except without interpolation in one of the axes.
surf_slices(Z): slices of matrix Z where size(Z)=[m,n]
surf_slices(x,y,Z): slices of matrix Z, where length(x)=n and length(y)=m
surf_slices(x,y,Z,'axis',axis): Change slicing axis (either 1 or 2)
The plot is constructed by overlaying a surf plot with a series of lines plotted along the ridges of the slices.
To reveal the mesh structure of the plot, use:
ax = gca;
ax.Children(end) = 'k';
Note that because a slice has a finite width (the width is the separation of the axis points), you may cut off the end of the data if you set the axis limits manually.

Cite As

Talfan Evans (2024). surf_slices(varargin) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Line Plots in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

Added image to submission. Fixed axis limits.
Added lines to the edges of the slices (where they cross the data limits) for visual clarity.
Fixed bug where plotting the transpose of a matrix causes the overlaid lines to be drawn incorrectly, even when setting 'axis'=2.
Fixed option parsing bug.