20 votos

¿Cómo visualizar una función de densidad tridimensional?

¿Cuál es la mejor manera de visualizar gráficamente una función de densidad tridimensional? Por ejemplo, me gustaría visualizar $$z=f_{X,Y}(x,y)$$ ?

No es necesario, pero R código para esto sería genial.

28voto

Bueno, hay cuatro enfoques posibles que me vienen a la mente (aunque estoy seguro de que hay muchos más), pero básicamente podrías representar los datos como un gráfico de perspectiva, un gráfico de contorno, un mapa de calor o, si lo prefieres, un gráfico de dispersión en 3D (que es más o menos un gráfico de perspectiva cuando tienes valores de $z$ para todos $(x,y)$ pares. He aquí algunos ejemplos de cada uno (de un conjunto de datos tridimensionales bien conocidos en R ):

enter image description here enter image description here enter image description here enter image description here

Aquí hay dos gráficos adicionales que tienen mejores características de trazado que los anteriores. enter image description here enter image description here Por lo tanto, en función de sus preferencias, determinará la forma en que le gusta visualizar los conjuntos de datos tridimensionales.

Here is the `R` code used to generate these four mentioned plots.
library(fields)
library(scatterplot3d)

#Data for illistarition
x = seq(-10, 10, length= 100)
y = x
f = function(x, y) { r = sqrt(x^2+y^2); 10 * sin(r)/r }
z = outer(x, y, f)
z[is.na(z)] = 1

#Method 1
#Perspective Plot
persp(x,y,z,col="lightblue",main="Perspective Plot")

#Method 2
#Contour Plot
contour(x,y,z,main="Contour Plot")
filled.contour(x,y,z,color=terrain.colors,main="Contour Plot",)

#Method 3
#Heatmap
image(x,y,z,main="Heat Map")
image.plot(x,y,z,main="Heat Map")

#Method 4
#3-D Scatter Plot
X = expand.grid(x,y)
x = X[,1]
y = X[,2]
z = c(z)
scatterplot3d(x,y,z,color="lightblue",pch=21,main="3-D Scatter Plot")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X