Re: Getting the View I want from ListPlot3D and Show
- To: mathgroup at smc.vnet.net
- Subject: [mg85803] Re: Getting the View I want from ListPlot3D and Show
- From: DOD <dcodea at gmail.com>
- Date: Sat, 23 Feb 2008 04:19:51 -0500 (EST)
- References: <fpm71n$2r3$1@smc.vnet.net> <fpmfci$903$1@smc.vnet.net>
On Feb 22, 6:32 am, Albert Retey <a... at arcor.net> 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.
Cheers,
Dennis