ggforce es una extension de ggplot2 creada por Thomas Lin Pedersen, el mantenedor actual de ggplot2. Anade nuevas geoms, estadisticas y facetas que complementan el paquete base. Usamos el dataset iris a lo largo del post.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
head(iris, 6)
geom_sina()
geom_sina() es una variacion del jitter que restringe los puntos dentro de la forma del violin, combinando la informacion de densidad del violin con los puntos individuales del jitter. Superponlo sobre geom_violin() para tener una vision completa de la distribucion.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
ggplot(iris, aes(x = Species,
y = Sepal.Length,
color = Species)) +
geom_violin(alpha = 0.2) +
geom_sina() +
theme_minimal()

geom_mark_ellipse()

geom_mark_ellipse() dibuja una elipse alrededor de cada grupo. Mapea label y opcionalmente description dentro de aes() para anadir anotaciones con descripcion. Controla el tamano del texto con label.fontsize y el espacio interior con expand.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
ggplot(iris, aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
geom_mark_ellipse(
aes(fill = Species, label = Species,
description = desc),
alpha = 0.15, label.fontsize = 9) +
theme_minimal() +
theme(legend.position = "none")
geom_mark_hull()
geom_mark_hull() dibuja un hull concavo que se ajusta al contorno de los puntos del grupo. El argumento concavity controla el ajuste: valores bajos producen un contorno mas concavo, valores altos tienden hacia un hull convexo.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
ggplot(iris, aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
geom_mark_hull(
aes(fill = Species, label = Species),
alpha = 0.15, concavity = 2) +
theme_minimal() +
theme(legend.position = "none")

geom_mark_rect()

geom_mark_rect() dibuja el rectangulo delimitador minimo alineado con los ejes alrededor de cada grupo. Es el mas compacto de los tres mark geoms y funciona bien cuando los grupos tienen una forma aproximadamente rectangular. Acepta los mismos argumentos de label, description y estilo que los otros mark geoms.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
ggplot(iris, aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
geom_mark_rect(
aes(fill = Species,
label = Species),
alpha = 0.15) +
theme_minimal() +
theme(legend.position = "none")
geom_parallel_sets()
geom_parallel_sets() dibuja un diagrama tipo Sankey que muestra como se distribuyen las observaciones entre varias variables categoricas. Primero transforma los datos con gather_set_data(), luego usa tres geoms: geom_parallel_sets() para las cintas, geom_parallel_sets_axes() para las barras de eje y geom_parallel_sets_labels() para las etiquetas.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
df_long <- gather_set_data(
iris[, c("Species", "Sepal.Size")], 1:2)
ggplot(df_long, aes(x = x, id = id,
split = y, value = 1)) +
geom_parallel_sets(aes(fill = Species), alpha = 0.4) +
geom_parallel_sets_axes(axis.width = 0.1) +
geom_parallel_sets_labels(colour = "white") +
theme_void()

facet_wrap_paginate()

facet_wrap_paginate() funciona como facet_wrap() pero distribuye los paneles en paginas. Define la cuadricula con ncol y nrow, y cambia page para renderizar un subconjunto diferente. Usa n_pages() con la misma llamada para saber el total de paginas disponibles.
# install.packages("ggforce")
library(ggplot2)
library(ggforce)
ggplot(diamonds, aes(x = carat, y = price)) +
geom_point(alpha = 0.3, size = 0.3) +
facet_wrap_paginate(~ cut,
ncol = 2, nrow = 2,
page = 1) +
theme_minimal()
Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar