plotly permite crear gráficos 3D interactivos en R, que se pueden rotar, ampliar y explorar pasando el ratón por encima de los elementos. En este tutorial aprenderás a crear gráficos de dispersión 3D y gráficos de superficie.
Para crear un gráfico de dispersión 3D pasa tres variables a x, y y z y establece type = "scatter3d" y mode = "markers". En el siguiente ejemplo utilizamos tres variables del conjunto de datos iris. Arrastra el gráfico para rotarlo.
# install.packages("plotly")
library(plotly)
plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width,
z = ~Petal.Length,
type = "scatter3d", mode = "markers")
Como en otros gráficos de plotly puedes colorear los puntos por grupo asignando una variable a color y estableciendo los colores con colors. Ten en cuenta que en los gráficos 3D los puntos son grandes por defecto, por lo que puede que quieras reducir su tamaño con marker = list(size = ...).
plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width,
z = ~Petal.Length, color = ~Species,
colors = c("#7B2CBF", "#F72585", "#4CC9F0"),
marker = list(size = 4),
type = "scatter3d", mode = "markers")
Los ejes de los gráficos 3D se personalizan dentro del argumento scene de layout, pasando listas a xaxis, yaxis y zaxis. En este ejemplo cambiamos los títulos de los tres ejes.
plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width,
z = ~Petal.Length, color = ~Species,
marker = list(size = 4),
type = "scatter3d", mode = "markers") |>
layout(scene = list(xaxis = list(title = "Longitud del sépalo"),
yaxis = list(title = "Anchura del sépalo"),
zaxis = list(title = "Longitud del pétalo")))
Los gráficos de superficie muestran una variable sobre una rejilla y se crean a partir de una matriz, donde los valores son las alturas (z) y las filas y columnas son las posiciones de la rejilla. Pasa la matriz a z y usa la función add_surface. En este ejemplo utilizamos la matriz volcano, que contiene la topografía de un volcán.
plot_ly(z = ~volcano) |>
add_surface()
Los colores de la superficie se pueden cambiar con el argumento colorscale, que admite el nombre de una paleta, como "Viridis", "Blues" o "Earth". Además, puedes proyectar las curvas de nivel de la superficie sobre la base del gráfico con contours.
plot_ly(z = ~volcano) |>
add_surface(colorscale = "Viridis",
contours = list(z = list(show = TRUE,
usecolormap = TRUE,
project = list(z = TRUE))))
Si necesitas una representación en 2D de los mismos datos puedes crear un gráfico de contorno o un mapa de calor. Consulta la guía de gráficos interactivos con plotly para aprender a personalizar el texto emergente, la leyenda y la barra de herramientas.
Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar