2012-06-26 7 views

Respuesta

77

Puede utilizar expand_limits

ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0) 

Aquí hay una comparación de los dos:

  • sin expand_limits

  • con expand_limits

partir de la versión 1.0.0 de ggplot2, puede especificar sólo un límite y tienen otro ser como normalmente se determinaría estableciendo ese segundo límite en NA. Este enfoque permitirá la expansión y el truncamiento del rango del eje.

ggplot(mtcars, aes(wt, mpg)) + geom_point() + 
    scale_y_continuous(limits = c(0, NA)) 

especificándolo través ylim(c(0, NA)) da una figura idéntica.

+0

@PatrickT ¿Lo quiso decir como comentario a http://stackoverflow.com/q/27028825/892313? –

+0

Exactamente lo que estaba buscando. Gracias – Veera

-1

No creo que pueda hacer esto directamente. Sino como una solución temporal, puede imitar la forma en que ggplot2 determina el límite superior:

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1)) 
9

Cómo sobre el uso aes(ymin=0), como en:

ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0) 
+7

Esto anula el ymin para geom_errorbar, etc .; expand_limits() parece más seguro. – Mark

+0

Esto no es universal, en cuanto a '' geom_density'' me da '' Error: stat_bin() no debe usarse con ay aesthetic'' o cuando se coloca dentro de '' geom_density'', '' Advertencia: Ignorar desconocido estética: ymin'' (este último es totalmente esperado) – PatrickT

0

También puede probar el siguiente código que le dará el eje y mínimo en cero y también sin el espacio adicional entre el eje xy el valor mínimo.

scale_y_continuous(limits = c(0, NA), expand = c(0,0)) 
Cuestiones relacionadas