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