Librería

plotly

Datos de muestra

En este tutorial vamos a utilizar el conjunto de datos mtcars, convirtiendo el número de cilindros (cyl) en un factor para usarlo como variable de grupo y guardando el nombre de cada coche en una nueva columna llamada model.

df <- mtcars
df$cyl <- factor(df$cyl)
df$model <- rownames(mtcars)

Gráfico de dispersión interactivo

Para crear un gráfico de dispersión con plotly pasa las variables a x e y y establece type = "scatter" y mode = "markers". También puedes usar la función add_markers, que es equivalente. El gráfico permite hacer zoom y pasar el ratón por encima de los puntos para ver sus coordenadas.

# install.packages("plotly")
library(plotly)

plot_ly(df, x = ~wt, y = ~mpg,
        type = "scatter", mode = "markers")

Gráfico de dispersión por grupo

Asigna una variable categórica a color para colorear los puntos por grupo y establece los colores con colors. Cada grupo se añadirá a la leyenda, de modo que puedes hacer clic en ellos para ocultarlos o mostrarlos. También puedes asignar la variable a symbol para usar una forma diferente para cada grupo.

plot_ly(df, x = ~wt, y = ~mpg, color = ~cyl,
        colors = c("#3A86FF", "#FFBE0B", "#FB5607"),
        type = "scatter", mode = "markers")

Gráfico de burbujas

Si asignas una variable numérica a size el tamaño de los puntos dependerá de sus valores, creando un gráfico de burbujas. El tamaño mínimo y máximo de las burbujas se puede establecer con sizes. En este ejemplo también añadimos transparencia a las burbujas con opacity, ya que se solapan.

plot_ly(df, x = ~wt, y = ~mpg, color = ~cyl,
        size = ~hp, sizes = c(10, 50),
        marker = list(opacity = 0.6),
        type = "scatter", mode = "markers")

Estilo de los marcadores

El estilo de los puntos se personaliza pasando una lista a marker, que permite establecer el tamaño (size), el color (color), la forma con symbol (como "circle", "square", "diamond" o "triangle-up") y el borde de los marcadores con line.

plot_ly(df, x = ~wt, y = ~mpg,
        type = "scatter", mode = "markers",
        marker = list(size = 12, color = "#FFBE0B", symbol = "diamond",
                      line = list(color = "#3A86FF", width = 1.5)))

Texto emergente

Usa text para pasar información adicional a los puntos y hovertemplate para personalizar el texto que se muestra al pasar el ratón por encima. En este ejemplo el cuadro muestra el nombre del coche junto a los valores de los ejes, mostrando el peso con dos decimales con %{x:.2f}.

plot_ly(df, x = ~wt, y = ~mpg,
        type = "scatter", mode = "markers",
        text = ~model,
        hovertemplate = paste("<b>%{text}</b><br>",
                              "Peso: %{x:.2f}<br>",
                              "Millas por galón: %{y}<extra></extra>"))

Recta de regresión

plotly no calcula rectas de regresión, pero puedes ajustar un modelo con lm, calcular los valores ajustados con fitted y añadirlos al gráfico con add_lines. El argumento name establece el nombre de cada traza en la leyenda.

fit <- lm(mpg ~ wt, data = df)

plot_ly(df, x = ~wt, y = ~mpg,
        type = "scatter", mode = "markers", name = "Datos") |>
  add_lines(y = ~fitted(fit), name = "Recta de regresión")

Si prefieres ggplot2 puedes crear un gráfico de dispersión en ggplot2 y convertirlo en un gráfico interactivo con ggplotly. Consulta la guía de gráficos interactivos con plotly para aprender a personalizar los títulos, los ejes y la leyenda.

MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar