Get from Ico-github-logo

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

  • shadowplot(varargin)
    SHADOWPLOT Add a shadow to an existing surface or patch plot
  • View all files
4.6 | 8 ratings Rate this file 32 Downloads (last 30 days) File Size: 105 KB File ID: #6400 Version: 1.2
image thumbnail




27 Nov 2004 (Updated )

Add a shadow to an existing surface plot.

Editor's Notes:

This file was a File Exchange Pick of the Week

| Watch this File

File Information

SHADOWPLOT Add a shadow to an existing surface plot
For some surface plots, it can be helpful to visualize the shadow (2D projection) of the surface. This can give a quick perspective on the data's variance.
SHADOWPLOT PLANE Adds a shadow plot on the PLANE boundary
PLANE can be:
x, y, or z: Plots on back/top wall of x, y or z
1 .. 6 : Plots on Nth wall, numbered as in AXIS:
[xmin xmax ymin ymax zmin zmax]
SHADOWPLOT(HAX,PLANE) Adds a shadow plot on the Nth wall on axes HAX
HS = SHADOWPLOT(...) Returns a handle to the shadow (a patch)
     shading interp
     shadowplot x % Back X Wall
     shadowplot y % Back Y Wall

MATLAB release MATLAB 7.0.1 (R14SP1)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (12)
13 Apr 2016 Andrea Libri

07 Dec 2014 wei

wei (view profile)

it is a really useful m file to create a projection!

18 Sep 2014 David

David (view profile)

For surf(x,y,peaks)

if peaks is size n x m
then x must be size 1 x m
and y must be size n x 1

02 Jun 2014 Iman

Iman (view profile)

Actually I realized I can just pass in a patch/surface object and adjust the kids/kisp loops or get rid of them completely to only shadow a single object. Works like a charm!

02 Jun 2014 Iman

Iman (view profile)

Great function! Is there any way to shadow only 1 object though (say a particular patch handle only) as opposed to all surface/patch objects on an axis?


Comment only
12 Mar 2014 Frederick Bryan

I repeat Usman's request. Is there any way to add projections of lines/points too? (e.g., using plot3/line/quiver)

Comment only
30 Jan 2013 Usman Ali

hi, can we use shadow plot of plot3(), i am trying to do so but no successful. it only works with mesh/surf plots. help

Comment only
28 Jan 2012 Pavel M.

09 Mar 2010 Joseph Kirk

Joseph Kirk (view profile)

line 79: if length(axis==4)

I don't think this achieves the intended purpose. (axis==4) will evaluate to a logical array of either 4 or 6 elements. length(axis==4) will thus equal 4 or 6, so the if-statement will always execute.

It should be: if length(ax)==4
This will execute the if-statement if the axis view is 2D, but not if the view is already 3D.

Comment only
23 Feb 2010 Clayton

Works well. Found a coding error: change line 120 to "surfdata{2} = repmat(surfdata{2}',1,Nx);"

30 Jan 2006 John D'Errico

Its former self is only a "shadow" of what it is now. Sorry. I had to say it. 8-)

16 Jan 2006 John D'Errico

I liked the idea until I tried it out. Shadowplot is of limited use in its current form. It works very nicely on the output of peaks, so then I tried it on one of my own 3d plots. It fails on more general patch objects, able to work on only objects of type 'surface'.

26 Jan 2006

Including nice enhancements from John D'Errico to include patches, too (it used to support just surfaces).

06 Jan 2010 1.1

Updated copyright.

17 Aug 2015 1.2

Moved code to GitHub.

Contact us