2012-06-26 13 views

risposta

77

È possibile utilizzare expand_limits

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

Ecco un confronto tra i due:

  • senza expand_limits

  • con expand_limits

A partire dalla versione 1.0.0 di ggplot2, è possibile specificare solo un limite e avere l'altro essere come sarebbe normalmente determinato impostando il secondo limite su NA. Questo approccio consentirà sia l'espansione che il troncamento della gamma dell'asse.

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

specificando tramite ylim(c(0, NA)) dà una figura identica.

+0

@PatrickT Intendevi questo come commento a http://stackoverflow.com/q/27028825/892313? –

+0

Esattamente quello che stavo cercando. Grazie – Veera

-1

Non penso che tu possa farlo direttamente. Ma, come un work-around, è possibile simulare il modo in cui ggplot2 determina il limite superiore:

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

Come sull'utilizzo aes(ymin=0), come in:

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

Questo ignora lo ymin per geom_errorbar, ecc .; expand_limits() sembra più sicuro. – Mark

+0

Questo non è universale, come per un '' geom_density'' che mi dà '' Errore: stat_bin() non deve essere usato con ay aesthetic'' o quando è collocato all'interno di '' geom_density'', '' Attenzione: Ignorando sconosciuto estetica: ymin'' (quest'ultimo è pienamente previsto) – PatrickT

0

Puoi anche provare il seguente codice che ti darà l'asse min a zero e anche senza il divario aggiuntivo tra il valore dell'asse x e del minimo.

scale_y_continuous(limits = c(0, NA), expand = c(0,0)) 
Problemi correlati