Visualización de datos con ggplot2 : : GUÍA RÁPIDA
Básico Geoms Utilice una función geom para representar puntos de datos, utilice las propiedades estéticas del geom para
representar variables. Cada función devuelve una capa.
ggplot2 se basa en la gramática de los gráficos, la
idea de que se pueden construir todos los gráficos a GRÁFICAS PRIMITIVAS DOS VARIABLES
partir de los mismos componentes: un conjunto de a <- ggplot(economics, aes(date, unemploy)) ambas continuas distribución bivariada continua
datos, un sistema de coordenadas y geoms, marcas b <- ggplot(seals, aes(x = long, y = lat)) e <- ggplot(mpg, aes(cty, hwy)) h <- ggplot(diamonds, aes(carat, price))
visuales que representan puntos de datos.
a + geom_blank() y a + expand_limits() e + geom_label(aes(label = cty), nudge_x = 1, h + geom_bin2d(binwidth = c(0.25, 500))
F M A x, y, alpha, color, fill, linetype, size, weight
Asegúrese de que los límites incluyan valores en nudge_y = 1) - x, y, label, alpha, angle, color,
+ = todas las gráficas. family, fontface, hjust, lineheight, size, vjust
h + geom_density_2d()
e + geom_point() x, y, alpha, color, group, linetype, size
datos geom sistema de gráfica b + geom_curve(aes(yend = lat + 1, x, y, alpha, color, fill, shape, size, stroke
x=F·y=A coordenadas xend = long + 1), curvature = 1) - x, xend, y, yend,
alpha, angle, color, curvature, linetype, size h + geom_hex()
Para mostrar valores, asigne variables de los datos a e + geom_quantile() x, y, alpha, color, fill, size
propiedades visuales del geom (estética) como el a + geom_path(lineend = "butt", x, y, alpha, color, group, linetype, size, weight
tamaño, el color y las ubicaciones x e y. linejoin = "round", linemitre = 1)
x, y, alpha, color, group, linetype, size función continua
e + geom_rug(sides = “bl") i <- ggplot(economics, aes(date, unemploy))
F M A a + geom_polygon(aes(alpha = 50)) - x, y, alpha, x, y, alpha, color, linetype, size
+ = color, fill, group, subgroup, linetype, size
e + geom_smooth(method = lm)
i + geom_area()
x, y, alpha, color, fill, linetype, size
b + geom_rect(aes(xmin = long, ymin = lat, x, y, alpha, color, fill, group, linetype, size, weight
datos geom sistema de gráfica xmax = long + 1, ymax = lat + 1)) - xmax, xmin,
x=F·y=A coordenadas i + geom_line()
color = F ymax, ymin, alpha, color, fill, linetype, size x, y, alpha, color, group, linetype, size
e + geom_text(aes(label = cty), nudge_x = 1,
size = A a + geom_ribbon(aes(ymin = unemploy - 900, nudge_y = 1) - x, y, label, alpha, angle, color,
ymax = unemploy + 900)) - x, ymax, ymin, family, fontface, hjust, lineheight, size, vjust
alpha, color, fill, group, linetype, size i + geom_step(direction = "hv")
x, y, alpha, color, group, linetype, size
Complete la siguiente plantilla para crear un gráfico.
requerido SEGMENTOS DE LÍNEA
ggplot (data = <DATOS> ) + Estéticas común: x, y, alpha, color, linetype, size
una discreta, una continua visualización de error
<FUNCIÓN_GEOM> (mapping = aes( <MAPEADO> ), f <- ggplot(mpg, aes(class, hwy)) df <- [Link](grp = c("A", "B"), fit = 4:5, se = 1:2)
b + geom_abline(aes(intercept = 0, slope = 1)) j <- ggplot(df, aes(grp, fit, ymin = fit - se, ymax = fit + se))
stat = <STAT> , position = <POSICIÓN> ) + No b + geom_hline(aes(yintercept = lat))
requerido,
<FUNCIÓN_COORDENADAS> + sensible b + geom_vline(aes(xintercept = long))
predeterminados
suministrados
f + geom_col() j + geom_crossbar(fatten = 2) - x, y, ymax,
<FUNCIÓN_FACETADO> + b + geom_segment(aes(yend = lat + 1, xend = long + 1)) x, y, alpha, color, fill, group, linetype, size ymin, alpha, color, fill, group, linetype, size
b + geom_spoke(aes(angle = 1:1155, radius = 1))
<FUNCIÓN_ESCALA> +
<FUNCIÓN_TEMA> f + geom_boxplot() j + geom_errorbar() - x, ymax, ymin,
x, y, lower, middle, upper, ymax, ymin, alpha, alpha, color, group, linetype, size, width
color, fill, group, linetype, shape, size, weight Also geom_errorbarh().
ggplot(data = mpg, aes(x = cty, y = hwy)) Comienza UNA VARIABLE continua
un gráfico al que se termina añadiendo capas. c <- ggplot(mpg, aes(hwy)); c2 <- ggplot(mpg) f + geom_dotplot(binaxis = "y", stackdir = “center") x, j + geom_linerange()
Agregar una función geom por capa. y, alpha, color, fill, group x, ymin, ymax, alpha, color, group, linetype, size
c + geom_area(stat = "bin")
last_plot() Devuelve la última gráfica. x, y, alpha, color, fill, linetype, size f + geom_violin(scale = “area") j + geom_pointrange() - x, y, ymin, ymax,
x, y, alpha, color, fill, group, linetype, size, weight alpha, color, fill, group, linetype, shape, size
ggsave("[Link]", width = 5, height = 5) Guarda el c + geom_density(kernel = "gaussian")
último gráfico como un archivo de 5' x 5' llamado x, y, alpha, color, fill, group, linetype, size, weight
"[Link]" en el directorio de trabajo. Coincide el tipo
de archivo con la extensión del archivo. ambas discretas mapas
c + geom_dotplot() g <- ggplot(diamonds, aes(cut, color)) Dibuje el objeto geométrico apropiado en función de las
x, y, alpha, color, fill características simples presentes en los argumentos de
data. aes():
Aes Valores estéticos comunes. c + geom_freqpoly()
x, y, alpha, color, group, linetype, size
g + geom_count()
x, y, alpha, color, fill, shape, size, stroke map_id, alpha, color, fill, linetype, linewidth.
nc <- sf::st_read([Link]("shape/[Link]", package = "sf"))
color y fill - texto ("red", "#RRGGBB")
e + geom_jitter(height = 2, width = 2) ggplot(nc) +
linetype – entero o texto (0 = "blank", 1 = "solid", c + geom_histogram(binwidth = 5) x, y, alpha, color, fill, shape, size geom_sf(aes(fill = AREA))
2 = "dashed", 3 = "dotted", 4 = "dotdash", 5 = "longdash", x, y, alpha, color, fill, linetype, size, weight
6 = "twodash")
c2 + geom_qq(aes(sample = hwy))
size - enterp (en mm para el tamaño de los puntos y el texto) x, y, alpha, color, fill, linetype, size, weight TRES VARIABLES
seals$z <- with(seals, sqrt(delta_long^2 + delta_lat^2)); l <- ggplot(seals, aes(long, lat))
linewidth - entero (en mm para el ancho de líneas)
l + geom_contour(aes(z = z)) l + geom_raster(aes(fill = z), hjust = 0.5,
shape - entero/nombre de la forma discreta vjust = 0.5, interpolate = FALSE)
o un cáracter ("a") x, y, z, alpha, color, group, linetype, size, weight
d <- ggplot(mpg, aes(fl)) x, y, alpha, fill
d + geom_bar() l + geom_contour_filled(aes(fill = z)) l + geom_tile(aes(fill = z))
x, alpha, color, fill, linetype, size, weight x, y, alpha, color, fill, group, linetype, size, subgroup x, y, alpha, color, fill, linetype, size, width
CC BY SA Posit Software, PBC • info@[Link] • [Link] • Aprenda más en [Link] • Guía rápida en HTML en [Link]/cheatsheets • ggplot2 3.5.1 • Actualizado: 2024-05
Estadísticas Una forma alternativa de crear una capa.
Escalas Anular los valores predeterminados con el
paquete scales. Sistemas de Coordenadas Facetas
Una estadística crea nuevas variables para trazar (por scales asigna valores de datos a los valores visuales de una r <- d + geom_bar() Las facetas dividen una gráfica
ejemplo, recuento, prop). estética. Para cambiar una asignación, agregue una nueva escala. en subgráficas en función de los
fl cty cyl valores de una o más variables
x count n <- d + geom_bar(aes(fill = fl)) r + coord_cartesian(xlim = c(0, 5)) - xlim, ylim discretas.
+ = estética a escala
preempaquetada
argumentos
específicos de la
El sistema de coordenadas cartesianas
predeterminado.
scale_ ajustar usar escala t <- ggplot(mpg, aes(cty, hwy)) + geom_point()
datos estadísticas geom sistema de gráfica r + coord_fixed(ratio = 1/2)
x=x· coordenadas n + scale_fill_manual(
values = c("skyblue", "royalblue", "blue", "navy"), ratio, xlim, ylim - Coordenadas cartesianas con
y = count t + facet_grid(. ~ fl)
limits = c("d", "e", "p", "r"), breaks =c("d", "e", "p", “r"), eelación de aspecto fija entre las unidades X e Y.
Visualice una estadística cambiando la estadística predeterminada Faceta en columnas basada en fl.
de una función geom, geom_bar(stat="count") o utilizando una name = "fuel", labels = c("D", "E", "P", "R")) r + coord_flip()
función stat, stat_count(geom="bar"), que llama a una función Invertir las coordenadas cartesianas cambiando t + facet_grid(year ~ .)
geom predeterminada para crear una capa (equivalente a una rango de valores título para etiquetas para Faceta en filas según el año.
usar en la usar en la saltos para usar asignaciones estéticas X e Y.
función geom). que se incluirán en leyenda/eje
en la asignación leyenda/eje leyenda/eje
Utilice la sintaxis after_stat(nombre) para asignar el nombre de t + facet_grid(year ~ fl)
la variable stat a una estética. r + coord_polar(theta = "x", direction=1) Faceta en filas y columnas.
ESCALAS DE USO GENERAL theta, start, direction - Coordenadas polares.
geom a usar función stat geommapeado Úselo con la mayoría de las estéticas t + facet_wrap(~ fl)
r + coord_trans(y = “sqrt") - x, y, xlim, ylim Envolver facetas en un diseño rectangular.
i + stat_density_2d(aes(fill = after_stat(level)), scale_*_continuous() - Asignar valores continuos a valores Coordenadas cartesianas transformadas. Asigne
visuales.
geom = "polygon") a xtrans y ytrans al nombre de una función de Establezca escalas para permitir que los límites de los ejes
variable creada por stat scale_*_discrete() - Asignar valores discretos a valores visuales. ventana. varíen según las facetas.
scale_*_binned() - Asignación de valores continuos a bins t + facet_grid(drv ~ fl, scales = "free")
discretos.
c + stat_bin(binwidth = 1, boundary = 10) π + coord_sf() - xlim, ylim, crs. Asegura todas las Los límites de los ejes X e Y se ajustan a facetas individuales:
x, y | count, ncount, density, ndensity scale_*_identity() - Usar valores de datos como visuales. capas utilizan un sistema de referencia de "free_x" - ajuste de los límites del eje X
scale_*_manual(values = c()) - Asigne valores discretos a valores coordenadas común. "free_y" - ajuste de los límites del eje Y
c + stat_count(width = 1) x, y | count, prop visuales elegidos manualmente.
Configurar la etiquetadora para ajustar la etiqueta de faceta:
c + stat_density(adjust = 1, kernel = "gaussian") scale_*_date(date_labels = "%m/%d"),
t + facet_grid(. ~ fl, labeller = label_both)
x, y | count, density, scaled date_breaks = "2 weeks") - Tratar los valores de datos como fechas.
scale_*_datetime() - Tratar los valores de datos como fechas y
horas.
Ajustes de Posición fl: c fl: d fl: e fl: p fl: r
e + stat_bin_2d(bins = 30, drop = T) Igual que scale_*_date(). Vea ?strptime para formatos de etiquetas.
x, y, fill | count, density Los ajustes de posición determinan cómo organizar los t + facet_grid(fl ~ ., labeller = label_bquote(alpha ^ .(fl)))
geomos que, de otro modo, ocuparían el mismo espacio.
e + stat_bin_hex(bins = 30) x, y, fill | count, density ESCALAS DE UBICACIÓN X E Y
Úselo con la estética x o y (x se muestra aquí) s <- ggplot(mpg, aes(fl, fill = drv))
e + stat_density_2d(contour = TRUE, n = 100)
x, y, color, size | level
scale_x_log10() - Trazar x en escala log10. s + geom_bar(position = "dodge")
e + stat_ellipse(level = 0.95, segments = 51, type = "t") scale_x_reverse() - Invertir la dirección del eje x. Organice los elementos uno al lado del otro.
scale_x_sqrt() - Gráfica x en escala de raíz cuadrada.
l + stat_contour(aes(z = z)) x, y, z, order | level ESCALAS DE COLOR Y RELLENO (DISCRETAS)
s + geom_bar(position = "fill")
Apila elementos uno encima de otro,
Etiquetas y Leyendas
l + stat_summary_hex(aes(z = z), bins = 30, fun = max) normaliza la altura. Usa labs() para etiquetar los elementos de tu gráfica.
x, y, z, fill | value n + scale_fill_brewer(palette = "Blues") t + labs(x = "Nueva etiqueta del eje x",
Para opciones de paleta: y = "Nueva etiqueta del eje Y",
RColorBrewer::[Link]() e + geom_point(position = "jitter")
l + stat_summary_2d(aes(z = z), bins = 30, fun = mean) Agregue ruido aleatorio a las posiciones X e Y de title ="Añade un título encima de la gráfica",
x, y, z, fill | value cada elemento para evitar el trazado excesivo. subtitle = "Añade un subtítulo debajo del título",
f + stat_boxplot(coef = 1.5) n + scale_fill_grey(start = 0.2, caption = "Agregue una leyenda debajo de la gráfica",
end = 0.8, [Link] = "red") e + geom_label(position = "nudge") alt = "Añadir texto alternativo a la gráfica",
x, y | lower, middle, upper, width , ymin, ymax Alejar las etiquetas de los puntos. <aes> = "Nuevo <AES>
<AES> <aes> título de la leyenda")
f + stat_ydensity(kernel = "gaussian", scale = "area") x, y | t + annotate(geom = "text", x = 8, y = 9, label = “A")
density, scaled, count, n, violinwidth, width s + geom_bar(position = "stack") Coloca un geom con estéticas seleccionada manualmente.
ESCALAS DE COLOR Y RELLENO (CONTINUAS) Apilar elementos uno encima del otro.
e + stat_ecdf(n = 40) x, y | x, y p + guides(x = guide_axis([Link] = 2)) Evite las
o <- c + geom_dotplot(aes(fill = x)) aglomeraciones o etiquetas superpuestas con
e + stat_quantile(quantiles = c(0.1, 0.9), Cada ajuste de posición se puede reformular como una guide_axis([Link] o angle).
formula = y ~ log(x), method = "rq") x, y | quantile o + scale_fill_distiller(palette = “Blues”) función con argumentos manuales de anchura y altura: n + guides(fill = “none") Establecer el tipo de leyenda para
s + geom_bar(position = position_dodge(width = 1)) cada estética: colorbar, legend, o none (no leyenda).
e + stat_smooth(method = "lm", formula = y ~ x, se = T, o + scale_fill_gradient(low="red", high=“yellow")
level = 0.95) x, y | se, x, y, ymin, ymax n + theme([Link] = "bottom")
Coloque la leyenda en "bottom", "top", "left", o “right”.
ggplot() + xlim(-5, 5) + stat_function(fun = dnorm,
n = 20, geom = “point”) x | x, y
o + scale_fill_gradient2(low = "red", high = “blue”,
mid = "white", midpoint = 25) Temas r + theme_bw()
n + scale_fill_discrete(name = "Title",
labels = c("A", "B", "C", "D", "E"))
Establecer el título y las etiquetas de la leyenda con una
o + scale_fill_gradientn(colors = [Link](6)) Fondo blanco función de escala.
ggplot() + stat_qq(aes(sample = 1:100)) con líneas de r + theme_classic()
x, y, sample | sample, theoretical Además: rainbow(), [Link](), [Link](),
[Link](), RColorBrewer::[Link]() cuadrícula. r + theme_light()
e + stat_sum() x, y, size | n, prop r + theme_gray() r + theme_linedraw()
e + stat_summary([Link] = "mean_cl_boot")
h + stat_summary_bin(fun = "mean", geom = "bar")
ESCALAS DE FORMA Y TAMAÑO
Fondo gris
(tema
predeterminado).
r + theme_minimal()
Minimal theme.
Zoom
p <- e + geom_point(aes(shape = fl, size = cyl)) Sin recortes (preferible):
r + theme_void()
e + stat_identity() p + scale_shape() + scale_size() r + theme_dark() Empty theme.
Oscuro para t + coord_cartesian(xlim = c(0, 100), ylim = c(10, 20))
e + stat_unique() p + scale_shape_manual(values = c(3:7)) contrastar.
r + theme() Personalice aspectos del tema, como las Con recorte (elimina los puntos de datos no vistos):
propiedades del eje, la leyenda, el panel y las facetas. t + xlim(0, 100) + ylim(10, 20)
p + scale_radius(range = c(1,6)) r + ggtitle(“Title”) + theme([Link] = “plot”)
p + scale_size_area(max_size = 6) r + theme([Link] = element_rect(fill = “blue”)) t + scale_x_continuous(limits = c(0, 100)) +
scale_y_continuous(limits = c(0, 100))
CC BY SA Posit Software, PBC • info@[Link] • [Link] • Aprenda más en [Link] • Guía rápida en HTML en [Link]/cheatsheets • ggplot2 3.5.1 • Actualizado: 2024-05