En este tutorial se utilizará el siguiente data frame que contiene tres columnas con el grupo y el subgrupo de diferentes valores.
grupo <- paste("Grupo", 1:9)
subgrupo <- c("A", "C", "B", "A", "A",
"C", "C", "B", "B")
valor <- c(7, 25, 50, 5, 16,
18, 30, 12, 41)
df <- data.frame(grupo, subgrupo, valor)
geom_treemap
Colores en base a la variable categórica
El paquete treemapify
permite crear treemaps en ggplot2. Tendrás que especificar las variables dentro de aes
como sigue y usar geom_treemap
.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = grupo)) +
geom_treemap()
Colores en base a la variable numérica
Ten en cuenta que también puedes colorear las variables en base a la variable numérica, dependiendo de lo que quieras representar.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = valor)) +
geom_treemap()
Pasando una variable al argumento label
de aes
y usando geom_treemap_text
podrás agregar etiquetas a cada porción del treemap.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = grupo, label = valor)) +
geom_treemap() +
geom_treemap_text()
Las etiquetas se pueden personalizar con varios argumentos. Escribe ?geom_treemap_text
para ver la lista completa.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = grupo, label = valor)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre",
size = 15)
También puedes agregar las etiquetas y los grupos a la vez y eliminar la leyenda si quieres.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = grupo,
label = paste(grupo, valor, sep = "\n"))) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre",
size = 15) +
theme(legend.position = "none")
Si pasaste la variable numérica a fill
puedes pasar los grupos a label
.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = valor, label = grupo)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre",
size = 15)
Ten en cuenta que existe un argumento llamado grow
que se puede establecer como TRUE
para que los textos encajen en las porciones.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = valor, label = grupo)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre",
size = 15,
grow = TRUE)
Agregando subgrupos
Si tu conjunto de datos contiene una columna que representa subgrupos puedes agregarlos al gráfico con subgroup
y geom_treemap_subgroup_text
. El color del borde de los subgrupos se puede modificar con geom_treemap_subgroup_border
.
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = valor,
label = grupo, subgroup = subgrupo)) +
geom_treemap() +
geom_treemap_subgroup_border(colour = "white", size = 5) +
geom_treemap_subgroup_text(place = "centre", grow = TRUE,
alpha = 0.25, colour = "black",
fontface = "italic") +
geom_treemap_text(colour = "white", place = "centre",
size = 15, grow = TRUE)
Puedes crear hasta tres subgrupos con subgroup2
, geom_treemap_subgroup2_border
y geom_treemap_subgroup2_text
y subgroup3
, geom_treemap_subgroup3_border
y geom_treemap_subgroup3_text
.
Los colores del treemap se pueden personalizar con escalas de color. La elección dependerá del tipo de dato que pases a fill
(continuo o discreto). A continuación puedes ver un par de ejemplos.
Continua
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = valor, label = grupo)) +
geom_treemap() +
geom_treemap_text(colour = c(rep("white", 2),
1, rep("white", 6)),
place = "centre", size = 15) +
scale_fill_viridis_c()
Discreta
# install.packages("treemapify")
library(treemapify)
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(area = valor, fill = grupo, label = valor)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre",
size = 15) +
scale_fill_brewer(palette = "Blues")
También te puede interesar