El paquete ggplot2
proporciona varias funciones para agregar capas a los gráficos como líneas de referencia (funciones geom_vline
, geom_hline
y geom_abline
), segmentos (geom_segment
), curvas (geom_curve
) y flechas (arrows
). En este tutorial vamos a revisar los casos de uso más habituales de estas funciones.
geom_vline
Considerando que tienes un gráfico hecho con ggplot2 puedes crear una nueva capa con geom_vline
para agregar una múltiples líneas verticales. Tan solo tienes que pasar un único valor o un vector numérico al argumento xintercept
de la función donde quieres que se muestren las líneas.
Ten en cuenta que puedes personalizar argumentos gráficos como linetype
(tipo de línea), color
o lwd
(grosor de la línea).
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_vline(xintercept = 0,
linetype = 2,
color = 2)
Agregar varias líneas a la vez
Ten en cuenta que todas las funciones de este tutorial permiten hacer esto.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_vline(xintercept = -1:1,
linetype = 1,
color = 2:4)
geom_hline
La función geom_hline
se comporta de la misma manera que geom_vline
. La única diferencia es que esta función agregará líneas horizontales, por lo que tendrás que especificar el argumento yintercept
en lugar de xintercept
.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_hline(yintercept = -1:1,
linetype = 3,
color = 4,
lwd = 1)
geom_abline
La función geom_abline
permite agregar líneas diagonales en base a un intercepto y una pendiente. El siguiente ejemplo muestra una línea diagonal con intercepto 0 y pendiente 1.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_abline(intercept = 0,
slope = 1)
geom_segment
Las funciones anteriores se pueden usar para agregar líneas a los gráficos, pero no puedes crear segmentos con ellas. Para ello existe la función geom_segment
, que permite especificar las coordinadas X e Y de inicio y fin del segmento deseado con x
, y
(inicio) y xend
, yend
(final), respectivamente.
Ten en cuenta que si pasas la función arrow
al argumento arrow
puedes crear una flecha. Mira los argumentos de la función arrow
para obtener detalles adicionales de personalización.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_segment(x = -1, y = 0,
xend = 1, yend = 1,
color = 2)
Agregar una flecha
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_segment(x = -2, y = 1,
xend = 1, yend = -1,
color = 2,
arrow = arrow())
geom_curve
La función geom_curve
se comporta de la misma manera que geom_segment
. La única diferencia es que esta función creará una curva en lugar de una línea recta. También puedes crear una flecha con esta función.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_curve(x = -2, y = 1,
xend = 1, yend = -1,
color = 4)
Ten en cuenta que puedes establecer el nuvel de curvatura pasando un valor al argumento curvature
de la función. Un cero será una línea recta, valores negativos producirán curvas hacia la izquierda y valores positivos producirán curvas hacia la derecha.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_curve(x = -2, y = 1,
xend = 1, yend = -1,
color = 4,
curvature = -0.2) # Grado de curvatura
Agregar una flecha
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(1)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
ggplot(df, aes(x = x, y = y)) +
geom_point() +
geom_curve(x = -2, y = 1,
xend = 1, yend = -1,
color = 2,
arrow = arrow())
También te puede interesar