Re: How to combine 3D Graphics?
- To: mathgroup at smc.vnet.net
- Subject: [mg126486] Re: How to combine 3D Graphics?
- From: Jee Lou <ywdr1987 at gmail.com>
- Date: Mon, 14 May 2012 01:35:08 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <joi3lp$n45$1@smc.vnet.net> <jonmb7$geb$1@smc.vnet.net>
On Sunday, May 13, 2012 3:03:03 PM UTC+8, JUN wrote:
> On Thursday, May 10, 2012 9:13:45 PM UTC-7, Jee Lou wrote:
> > I have tried to combine a translucent 3D-plot graph with its density plot by using Show. But it doesn't work. Here's my code:
> > g1=Plot3D[Sin[x + y], {x, 0, Pi}, {y, 0, Pi}, Mesh -> False,PlotStyle->Opacity[.5]];
> > g2=DensityPlot[Sin[x + y], {x, 0, Pi}, {y, 0, Pi}, Frame -> False];
> > g3=Plot3D[-1, {x, 0, Pi}, {y, 0, Pi}, Mesh -> None,TextureCoordinateFunction -> ({#1, #2} &), PlotStyle -> Directive[Texture[g2]]];
> > Show[g1,g3]
> > It turns out that the density graph disappears T_T.
> > How can I make it right?
>
> Although the plot shows properly in the notebook, I can confirm that it disappears when exporting the result of Show[g1,g3] as a PDF. To fix this, you could try the following modification:
>
> g3 = Plot3D[-1, {x, 0, Pi}, {y, 0, Pi}, Mesh -> None,
> TextureCoordinateFunction -> ({#1, #2} &),
> PlotStyle -> Directive[Texture[ImageData@Rasterize[g2, "Image"]]]];
>
> This is a bug, and the use of ImageData above is a work-around.
Your modification does not work either...but thx anyway. I have fixed it by using ColorFunction at last.
code here:
p1 = Plot3D[Sin[x + y], {x, 0, \[Pi]}, {y, 0, \[Pi]},
PlotStyle -> Opacity[.5], Mesh -> False];
p2 = Plot3D[-1, {x, 0, \[Pi]}, {y, 0, \[Pi]},
ColorFunction ->
Function[{x, y}, ColorData["Rainbow", (Sin[x + y] + 1)/2]],
ColorFunctionScaling -> False, Mesh -> False, PlotPoints -> 30];
Show[p1, p2, PlotRange -> All, ImageSize -> 500]