¿Cómo establecer límites para los ejes en los gráficos de ggplot2 R?
Trazo lo siguiente:
library(ggplot2)
carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)
ggplot(vegLengths, aes(length, fill = veg)) +
geom_density(alpha = 0.2)
Ahora digamos que solo quiero trazar la región entre x=-5000
, 5000
en lugar de todo el rango.
¿Cómo puedo hacer eso?
Básicamente tienes dos opciones.
scale_x_continuous(limits = c(-5000, 5000))
o
coord_cartesian(xlim = c(-5000, 5000))
Donde el primero elimina todos los puntos de datos fuera del rango dado y el segundo solo ajusta el área visible. En la mayoría de los casos, no verá la diferencia, pero si ajusta algo a los datos, probablemente cambiará los valores ajustados.
También puede utilizar la función abreviada xlim
(o ylim
), que, al igual que la primera opción, elimina puntos de datos fuera del rango dado:
+ xlim(-5000, 5000)
Para más información consulta la descripción de coord_cartesian
.
La hoja de referencia de RStudio deja ggplot2
esto bastante claro visualmente. Aquí hay una pequeña sección de esa hoja de referencia:
Distribuido bajo CC BY .
Nota rápida: si también está utilizando coord_flip()
para invertir los ejes x e y, no podrá establecer límites de rango coord_cartesian()
porque esas dos funciones son exclusivas (consulte aquí ).
Afortunadamente, esta es una solución fácil; establece tus límites dentro de coord_flip()
esta manera:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
Esto simplemente altera el rango visible (es decir, no elimina los puntos de datos).