Los siguientes datos representan las respuestas a la pregunta: “¿Cuántas horas al día ves la televisión?”. La variable x
representa la edad de la persona, y
representa su respuesta y grupo
representa su ciudad. Estos datos ficticios serán usados en los ejemplos siguientes.
# Datos
set.seed(1)
edad <- factor(sample(c("Niño", "Adulto", "Jubilado"),
size = 50, replace = TRUE),
levels = c("Niño", "Adulto", "Jubilado"))
horas <- sample(1:4, size = 50, replace = TRUE)
ciudad <- sample(c("A", "B", "C"),
size = 50, replace = TRUE)
df <- data.frame(x = edad, y = horas, grupo = ciudad)
geom_bar
stat = “count” (por defecto)
Si usas geom_bar
con los argumentos por defecto tendrás que pasar solo x
o y
a la función aes
además de fill
. El gráfico de barras mostrará la suma apilada para cada grupo de la variable.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, fill = grupo)) +
geom_bar()
stat = “identity”
Si estableces stat = "identity"
puedes crear un gráfico de barras apiladas para múltiples variables. En este escenario puedes pasar otra variable a aes
, representando el valor o el conteo de la variable.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity")
Paleta predefinida
Puedes cambiar los colores de las barras apiladas con una paleta predefinida, como las que proporciona scale_fill_brewer
.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity") +
scale_fill_brewer()
Colores personalizados
Si prefieres elegir cada color puedes usar scale_fill_manual
y pasar un vector de colores al argumento values
.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("#DADAEB", "#9E9AC8", "#6A51A3"))
Color del borde (stat = “identity”)
En caso de que estés creando un gráfico de barras con stat = "identity"
puedes establecer un color de borde pasando un color al argumento color
de geom_bar
, pero el borde resaltará todas las barras representando los valores de la variable y
.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity", color = "black") +
scale_fill_manual(values = c("#DADAEB", "#9E9AC8", "#6A51A3"))
Color del borde (stat = “count”)
Si creas un gráfico de barras apiladas en base a una variable el borde se mostrará alrededor de cada barra, ya que no hay otra variable
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, fill = grupo)) +
geom_bar(color = "black") +
scale_fill_manual(values = c("#DADAEB", "#9E9AC8", "#6A51A3"))
Título de la leyenda
El título de la leyenda del gráfico de barras se corresponde por defecto al nombre de la variable pasada a fill
, pero se puede sobrescribir con el código siguiente.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity") +
guides(fill = guide_legend(title = "Título"))
Etiquetas de la leyenda
Las etiquetas de la leyenda son los nombres de la variable categórica pasada a fill
. Si necesitas cambiar estos valores puedes usar el argumento labels
de sacale_fill_discrete
o scale_fill_manual
si cambias los colores de fondo.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity") +
scale_fill_discrete(labels = c("G1", "G2", "G3"))
Eliminar la leyenda
La leyenda se puede borrar estableciendo el componente legend.position
de la función theme
como "none"
. Ten en cuenta que también puedes cambiar la posición de la leyenda con esta componente.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = x, y = y, fill = grupo)) +
geom_bar(stat = "identity") +
theme(legend.position = "none")
También te puede interesar