MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Getting the View I want from ListPlot3D and Show

  • To: mathgroup at
  • Subject: [mg85803] Re: Getting the View I want from ListPlot3D and Show
  • From: DOD <dcodea at>
  • Date: Sat, 23 Feb 2008 04:19:51 -0500 (EST)
  • References: <fpm71n$2r3$> <fpmfci$903$>

On Feb 22, 6:32 am, Albert Retey <a... at> wrote:
> Hi,
> > I created four 3D lists, and created four ListPlot3D objects(using
> > interpolation to get nice smooth surfaces), and then combine them with
> > Show.  Each listplot is a difference color, so I can see very nicely
> > what's going on.  When I use the option Viewpoint->Top in Show, I can
> > see which list has the highest value over the unit square.
> > What I would lake is to just export that top view to an EPS file for
> > me to discuss in my paper.  The problem is that there are a few
> > artifacts of the view that don't look so nice; Where some of the
> > surfaces cross there are peaks and valleys, so when viewed from the
> > top, the Show object bulges and distorts at the edges that have a bit
> > of slope.  Since I've used Viewpoint-Top, I had hoped there would be
> > nothing like that, so that all I would see is the color of the
> > different regions of the unit square, but apparently that doesn't give
> > me a LITERAL top view; it's viewed from some point in 3D space some
> > distance from the object, so even viewing from the top doesn't fully
> > eliminate the third dimension.
> > Is there some other way to either get a more perfect top view,
> I'm not sure whether I complete understood what your problem is, but the
> following might help. It is from the documentation of ViewPoint where
> you can find additional information:
> Graphics3D[Cylinder[], ViewPoint -> {0, 0, Infinity}]
> hth,
> albert

Here's the code in question, to clear things up a bit;

Three = ListPlot3D[ThreeInformal, InterpolationOrder -> 2, PlotRange -
> {0, \
1}, PlotStyle -> Yellow];

Two = ListPlot3D[TwoInformal, InterpolationOrder -> 2, PlotRange ->
{0, 1}, PlotStyle -> Blue];

One = ListPlot3D[OneInformal, InterpolationOrder -> 2, PlotRange ->
{0, 1}, PlotStyle -> Red];

Zero = ListPlot3D[ZeroInformal, InterpolationOrder -> 2, PlotRange ->
{0, 1},
PlotStyle -> Green];

Show[Three, Two, One, Zero, AxesLabel -> {"a", "b"}, ViewPoint -> Top]

ThreeInformal, TwoInformal, OneInformal, and ZeroInformal are lists of
the form
{{x1,y1,x1},...,{xn,yn,yn}}, that I construct earlier in the code.

So Show creates a 3D object I can rotate, to see how the surfaces
defined by those lists vary over [0,1]x[0,1].  If I view it from the
top, then I can see which of those four objects has the highest value,
by which color is visible, the others being underneath it, and
therefore hidden.

I could combine these lists into one list, and then generate the
surface of the top view- just taking the "envelope" of the four
surfaces, and then do a relief plot of that, but I really want to
maintain the visual distinction of where each curve is the max-IE I
still want to color those regions.

I can get a top view with the Viewpoint option, but the third
dimension is still there- I want to suppress it entirely, so that I'm
only seeing a 2D region, colored according to which of those surfaces
is maximal.


  • Prev by Date: PowerExpand in version 6
  • Next by Date: Re: Re: "Assuming"
  • Previous by thread: Re: Getting the View I want from ListPlot3D and Show
  • Next by thread: Re: how to import a block of numbers which may touch each other by