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