Re: Question about a CountorPlot3D
- To: mathgroup at smc.vnet.net
- Subject: [mg117566] Re: Question about a CountorPlot3D
- From: Heike Gramberg <heike.gramberg at gmail.com>
- Date: Wed, 23 Mar 2011 02:52:39 -0500 (EST)
That's a lot more concise than what I was trying to do. It hadn't occurred to me to nest the PlotStyles of the 2 graphs. I stumbled upon another method which doesn't use Texture. It's a variant of an example hidden deep within the documentation of Mathematica (in Compatibility/tutorial/Graphics/Graphics3D to be precise) f := 1 - Cos[10*Sqrt[x^2 + y^2]]/Exp[10*(x^2 + y^2)] zmin = -1; Show[Plot3D[f, {x, -1, 1}, {y, -1, 1}, PlotRange -> All, PlotStyle -> {Opacity[0.4]}], Plot3D[f, {x, -1, 1}, {y, -1, 1}, ColorFunction -> "TemperatureMap", PlotRange -> All, Mesh -> False] /. Graphics3D[gr_, opts___] :> Graphics3D[Scale[gr, {1, 1, 10^-4}, {0, 0, zmin}], opts]] Heike. On 22 Mar 2011, at 10:09, Patrick Scheibe wrote: > Hi, > > I'm guessing we should not be afraid to use the Texture feature which > was introduced: > > f = 1 - Cos[10*Sqrt[x^2 + y^2]]/Exp[10*(x^2 + y^2)]; > With[{tex = Texture[DensityPlot[f, {x, -1, 1}, {y, -1, 1}, > PlotRange -> {{-1, 1}, {-1, 1}, {0, 2}}, Frame -> False, > ColorFunction -> "TemperatureMap"]]}, > Plot3D[{f, -1}, {x, -1, 1}, > {y, -1, 1}, PlotStyle -> {{Opacity[0.4]}, {tex}}]] > > Cheers > Patrick > > On Mon, 2011-03-21 at 06:17 -0500, Heike Gramberg wrote: >> I'm sure there must be an easier way to do this, but the way I've done this in the past is to create a 2D density plot of the function using DensityPlot[] and use that plot as the texture of a rectangle in the 3D plot. So to mimic the example in the link, you would get something like >> >> f[x_, y_] := 1 - Cos[10 Sqrt[x^2 + y^2]]/Exp[10 (x^2 + y^2)] >> zmin = -1; >> densPlot = >> DensityPlot[f[x, y], {x, -1, 1}, {y, -1, 1}, >> PlotRange -> {{-1, 1}, {-1, 1}, {0, 2}}, Frame -> False, >> ColorFunction -> (ColorData[{"DeepSeaColors", "Reverse"}][#] &)]; >> projection = >> Plot3D[zmin, {x, -1, 1}, {y, -1, 1}, PlotStyle -> Texture[densPlot], >> Mesh -> False]; >> plot = Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}, >> BoxRatios -> {1, 1, 0.8}, >> PlotRange -> {Automatic, Automatic, {zmin, 2}}, PlotPoints -> 30, >> PerformanceGoal -> "Quality", PlotStyle -> Opacity[0.1], >> MeshStyle -> Directive[Darker[Gray], Dashed], >> Mesh -> {30, 30}, >> ColorFunction -> (ColorData[{"DeepSeaColors", "Reverse"}][#3] &), >> Lighting -> "Neutral"]; >> Show[plot, projection] >> >> Heike. >> >> >> On 20 Mar 2011, at 09:55, Iv==E1n Lazaro wrote: >> >>> Hi all! >>> >>> This may be silly, but I want to know if is posible to make a CountorPlot3D >>> like the one is shown in the link. >>> >>> I'm specially interested in the "projection". Is it possible? >>> >>> Thanks a lot! >>> >>> Image: >>> http://209.85.62.24/28123/36/0/p397406/Wigner.jpg >> > > >