Hi,
thank you very much for your help, but I need something different.

For example, I wrote this code to highlight the standard deviation area 
of each distribution

fn <- function(x, y, scale, scale2)
dnorm(x,mean=1,sd=scale)*dnorm(y,mean=-1,sd=scale) +
dnorm(x,mean=2,sd=scale2)*dnorm(y,mean=1,sd=scale) +
dnorm(x,mean=-3,sd=scale)*dnorm(y,mean=1,sd=scale2)

x <- seq(-4,4,len=40)
y <- seq(-4,4,len=40)
z <- outer(x, y, fn, scale = 1, scale2 = 0.5)
nrz <- nrow(z)
ncz <- ncol(z)
jet.colors <- colorRampPalette( c("lightblue", "yellow") )
nbcol <- 100
color <- jet.colors(nbcol)
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
# Recode facet z-values into color indices
facetcol <- cut(zfacet, nbcol)

phi <- seq(0, 2*pi, len = 201)

#postscript ("3d-gaussian.eps", family = "Times", paper="special", 
horizontal=FALSE, width=15/2.54, height=15/2.54, pointsize=8)
res <- persp(x,y,z, theta = 30, phi = 30, expand = 0.2, col = 
color[facetcol],
       ltheta = 120, shade = 0.75, ticktype = "detailed")

polygon(trans3d(1+(1*cos(phi)), -1+(1*sin(phi)), fn(1, -1, 1, 0.5), pmat 
= res), col = rgb(1,0,0,0.5), border = NA)
lines(trans3d(1+(1*cos(phi)), -1+(1*sin(phi)), fn(1, -1, 1, 0.5), pmat = 
res), col = "black", lwd = 1, lty = 2)

polygon(trans3d(2+(0.5*cos(phi)), 1+(1*sin(phi)), fn(2, 1, 1, 0.5), pmat 
= res), col = rgb(0,1,0,0.5), border = NA)
lines(trans3d(2+(0.5*cos(phi)), 1+(1*sin(phi)), fn(2, 1, 1, 0.5), pmat = 
res), col = "black", lwd = 1, lty = 2)

polygon(trans3d(-3+(1*cos(phi)), 1+(0.5*sin(phi)), fn(-3, 1, 1, 0.5), 
pmat = res), col = rgb(0,0,1,0.5), border = NA)
lines(trans3d(-3+(1*cos(phi)), 1+(0.5*sin(phi)), fn(-3, 1, 1, 0.5), pmat 
= res), col = "black", lwd = 1, lty = 2)
#dev.off()

... but the result is still not so good!!

Best,
Roberto


Il 26/12/2012 20:41, David Winsemius [via R] ha scritto:
>
> On Dec 25, 2012, at 11:58 PM, Roberto wrote:
>
> > I wrote, finding pieces of code in the web, a simple script to draw
> > a 3D
> > gaussian plot.
>
> > For the next step, I need that the 2 gaussian distributions have
> > different
> > colors.
> >
> > Can someone help me to do this?
> >
> > fn <- function(x, y, scale, scale2)
> > dnorm(x,mean=1,sd=scale)*dnorm(y,mean=-1,sd=scale) +
> > dnorm(x,mean=2,sd=scale2)*dnorm(y,mean=1,sd=scale2)
> >
> > x <- seq(-4,4,len=40)
> > y <- seq(-4,4,len=40)
> > z <- outer(x, y, fn, scale = 1, scale2 = 0.5)
> > nrz <- nrow(z)
> > ncz <- ncol(z)
> > jet.colors <- colorRampPalette( c("lightblue", "green", "darkgreen") )
> > nbcol <- 100
> > color <- jet.colors(nbcol)
> > zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
> > # Recode facet z-values into color indices
> > facetcol <- cut(zfacet, nbcol)
> > persp(x,y,z, theta = 30, phi = 30, expand = 0.2, col =
> > color[facetcol],
> >      ltheta = 120, shade = 0.75, ticktype = "detailed")
>
> There really is no specific division since both distributions
> contribute something at each point, so I took this to mean that you
> wanted something that might arise in an effort to divide the plane
> into two regions where their contributions were greatest. This effort
> was done by eyeball:
>
> persp(x,y,z, theta = 30, phi = 30, expand = 0.2, col = c("blue", "red")
> [1+(row(z[-1,-1])+col(z[-1,-1]) <= 47)],
>       ltheta = 120, shade = 0.75, ticktype = "detailed")
>
>
> Need to construct an index matrix to the color vector that matches the
> dimensions of the facets which are one less than the dimensions of z
> (adding 1 since R indices need to start at 1 and logical FALSE is 0) .
> This constructs a matrix of conditions based on
>
> David Winsemius, MD
> Alameda, CA, USA
>
> ______________________________________________
> [hidden email] </user/SendEmail.jtp?type=node&node=4653978&i=0> 
> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>
> ------------------------------------------------------------------------
> If you reply to this email, your message will be added to the 
> discussion below:
> http://r.789695.n4.nabble.com/3D-Gaussian-with-different-colors-tp4653938p4653978.html
>  
>
> To unsubscribe from 3D Gaussian with different colors, click here 
> <http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4653938&code=cm1vc2NldHRpQHVuaXR1cy5pdHw0NjUzOTM4fC01NTAwNjYxNDc=>.
> NAML 
> <http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>  
>


-- 
Roberto Moscetti
PhD Student
University of Tuscia
Viterbo, Italy
----------------
Mobile +39 346 8041267
Phone  +39 0761 357415





--
View this message in context: 
http://r.789695.n4.nabble.com/3D-Gaussian-with-different-colors-tp4653938p4654052.html
Sent from the R help mailing list archive at Nabble.com.
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to