# [R] persp, array and colors

Uwe Ligges ligges at statistik.uni-dortmund.de
Wed Aug 11 09:06:59 CEST 2004

```Camarda, Carlo Giovanni wrote:
> Dear R-users,
> I'd like to plot a three-dimensional surface and at the meantime I'm using
> an array. I would like to have the values of my first matrix in the heights
> of the plot and the colors of the single facet taking into account the
> second matrix.
> I hope that the next code will help all of you to understand better my
> issue,

Have you read ?persp carefully? Have you looked at the examples in
demo(persp)? Where is the problem?

> ############################
> ## creating my array
> m1 <- runif(30,min=1, max=10)
> m2 <- c(rep(0,12), rep(1,5), rep(0,3), rep(1,30-12-5-3))
> mm <- array(c(m1,m2), dim=c(6,5,2))
>
> ## colors
> colo <- c("red", "blue")
>
> ## axis
> x  <- 1:6
> y  <- 1:5
> z  <- mm[,,1]
> z1 <- mm[,,2]
>
> ## surface with heights and colors
> ## related to the first matrix (no good)
> persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = colo,
>         ltheta = 120, ticktype = "detailed",
>         xlab = "X", ylab = "Y", zlab = "values" )

Use something like col = colo[mm[-1,-1,2]+1] instead of col=colo. Note
that the color matrix must be (m-1)x(n-1) if z is   m x n !!!

Uwe Ligges

> ## surface with heights and colors
> ## related to the second matrix (no good as well)
> persp(x, y, z1, theta = 30, phi = 30, expand = 0.5, col = colo,
>         ltheta = 120, ticktype = "detailed",
>         xlab = "X", ylab = "Y", zlab = "values" )
> ############################
>
>
>
> +++++
> This mail has been sent through the MPI for Demographic Rese...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help