2017-01-26

Destacar una barra de un diagrama de barras con ggplot2


Problema

Deseamos destacar una determinada barra de un diagrama de barras. En nuestro ejemplo, queremos cambiar el color de la barra 8 para las observaciones A de la columna Var, y la barra 10 de las observaciones B de la columna Var.

library(ggplot2)
set.seed(12345)
data <- data.frame(Var = c(rep("A", 50), rep("B", 50)), Value = round(rnorm(100, 10, 2), 0))
ggplot(data)+
  geom_histogram(aes(x = Value))+
  facet_grid(Var ~ .)

Solución

  • Colores por defecto.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none").

    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth=0.5) +
      facet_grid(Var ~ .) + 
      theme(legend.position = "none")
     
  • Editando los colores.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none"). Editamos los colores con scale_fill_manual.

    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth=0.5) +
      facet_grid(Var ~ .) + 
      scale_fill_manual(values = c("grey45", "red"))+
      theme(legend.position = "none")
     
  • Con un conjunto de datos mayor.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none").Ajustamos el ancho de las barras con bindwith.

    set.seed(12345)
    data <- data.frame(Var = c(rep("A", 50), rep("B", 50)), Value = round(rnorm(10000, 10, 10), 0))
    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth = 0.5) +
      facet_grid(Var ~ .) + 
      theme(legend.position = "none")
     

    Entradas relacionadas

    No hay comentarios:

    Publicar un comentario

    Nube de datos