2017-05-22

Crear diagramas de dispersión dinámicos con manipulate en R

Problema

El paquete manipulate nos permite modificar gráficos interactivamente en RStudio mediante controles deslizantes, selectores, casillas y botones. En este ejemplo, crearemos un diagrama de dispersión en el que podremos seleccionar dinámicamente las columnas del data frame a representar en cada eje.

Solución

  • Creamos la función
  • Dentro de plot utilizamos los argumentos de cada eje seleccionado: xaxis y yaxis. Usamos controles deslizantes (sliders) para manipular el gráfico. Fijamos los valores iniciales en 1 y 2.

    library(manipulate)
    scatterplot <- function(dataset){
      vars <- as.list(names(dataset))
      name <- sys.call()[[2]]
    manipulate(
      plot(dataset[, xaxis] ~ dataset[, yaxis], 
           xlab = colnames(dataset)[xaxis],
           ylab = colnames(dataset)[yaxis], 
           main = as.character(name)),   
      xaxis = slider(1, as.numeric(dim(dataset)[2]), initial = 1), 
      yaxis = slider(1, as.numeric(dim(dataset)[2]), initial = 2)  
      )
    }
    
  • Indicamos data frame a representar
  • scatterplot(mtcars)
    

Resultado

En los controles deslizantes aparecen las 11 columnas del data frame mtcars. Al seleccionar una columna en el control deslizante se actualizarán las datos representados, el título principal y los títulos de los ejes. Si la columna seleccionada no fuera numérica, no se representará un diagrama de dispersión.

Entradas relacionadas

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos