Highlights from
SHADOWPLOT

  • shadowplot(varargin)
    SHADOWPLOT Add a shadow to an existing surface or patch plot
  • View all files

4.5

4.5 | 5 ratings Rate this file 46 Downloads (last 30 days) File Size: 4.35 KB File ID: #6400
image thumbnail

SHADOWPLOT

by

 

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
Description

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)
 
Examples:
     figure
     surf(peaks)
     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 (9)
02 Jun 2014 Iman

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

Hi,
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?

Thanks

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)

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

28 Jan 2012 Pavel M.  
09 Mar 2010 Joseph Kirk

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.

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'.

Updates
26 Jan 2006

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

06 Jan 2010

Updated copyright.

18 Jun 2014

Moved code to GitHub.

Contact us