Skip to content

[R-es] Dibujar en tres dimensiones para un dominio dado. Añadir curvas de nivel.

4 messages · Emilio Torres Manzanera, Carlos Ortega

#
Hola,
Deseo dibujar en tres dimensiones la siguiente función
z= min( 1 - abs(x-0.7), 1 - abs(y-0.2))
en este dominio 0<= x <= y <=1

En el ejemplo que hay abajo, se dibuja para 0<=x<=1, 0<=y<=1. ¿Me pueden ofrecer alguna ayudita para dibujarla en el recinto 0<= x <= y <=1 ?

Y si además me indican cómo  dibujar las proyecciones (curvas de nivel) en los planos XY, YZ y XZ, ¡menudo dibujo quedaría!
¡Gracias!
Emilio

library(plot3D)
x <- seq(0, 1,length.out=50)
y <- seq(0, 1,length.out=50)
M <- mesh(x, y)
surf3D(x = M$x,
       y = M$y, 
       z =  pmin( 1 - abs(M$x-0.7), 1-abs(M$y-0.2) ),
       colkey=TRUE,
      bty="g")
#
Hola,

Mira la viñeta que acompaña al paquete que al final aparecen ejemplos de
como combinar varios gráficos como quieres (Fifty ways to draw a volcano
using package plot3D):

https://cran.r-project.org/web/packages/plot3D/vignettes/volcano.pdf


Gracias,
Carlos Ortega
www.qualityexcellence.es

El 23 de noviembre de 2015, 13:02, Emilio Torres Manzanera <torres en uniovi.es

  
    
#
¡Gracias Carlos! Era justo lo que necesitaba.
Aquí va una primera versión por si le puede servir a alguien.
Saludos
Emilio

library(plot3D)
misdatos <- matrix(NA,ncol=20,nrow=20)
x <- c(1:20)/20
y <- c(1:20)/20
M <- mesh(x,y)
misdatos <- pmin( 1 - abs(M$x-0.7), 1-abs(M$y-0.2))
gdata::lowerTriangle(misdatos, diag=FALSE) <- NA
persp3D(z = misdatos, contour = list(side = c("zmax", "z")), zlim= c(0, 1),phi = 30, theta = 00, d = 10,box=FALSE)
On Monday, November 23 2015, 13:48:52, Carlos Ortega <cof en qualityexcellence.es> wrote:

            

  
    
#
Hola,

Entiendo que en el valor de "theta" has querido incluir "100"...
Yo creo que se ve mejor con "box=TRUE"...

#------------
library(plot3D)
misdatos <- matrix(NA,ncol=20,nrow=20)
x <- c(1:20)/20
y <- c(1:20)/20
M <- mesh(x,y)
misdatos <- pmin( 1 - abs(M$x-0.7), 1-abs(M$y-0.2))
gdata::lowerTriangle(misdatos, diag=FALSE) <- NA
persp3D(z = misdatos, contour = list(side = c("zmax", "z"))
        , zlim= c(0, 1),phi = 30, theta = 100, d = 10,box=TRUE)
#------------


[image: Imágenes integradas 1]
Saludos,
Carlos Ortega
www.qualityexcellence.es


El 23 de noviembre de 2015, 16:32, Emilio Torres Manzanera <torres en uniovi.es