¿Cómo establecer límites para los ejes en los gráficos de ggplot2 R?

Resuelto David B asked hace 54 años • 2 respuestas

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, 5000en lugar de todo el rango.

¿Cómo puedo hacer eso?

David B avatar Jan 01 '70 08:01 David B
Aceptado

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 ggplot2esto bastante claro visualmente. Aquí hay una pequeña sección de esa hoja de referencia:

ingrese la descripción de la imagen aquí

Distribuido bajo CC BY .

midtiby avatar Aug 31 '2010 07:08 midtiby

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).

Bill avatar Sep 02 '2016 18:09 Bill