Forza l'origine in modo che inizi da 0


139

Come posso impostare l'origine / intercettazione dell'asse y e dell'asse x in ggplot2?

La linea dell'asse x dovrebbe essere esattamente a y=Z.

Con Z=0o un altro valore dato.

Risposte:


199

xlime ylimnon tagliarlo qui. È necessario utilizzare expand_limits, scale_x_continuouse scale_y_continuous. Provare:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

inserisci qui la descrizione dell'immagine

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

inserisci qui la descrizione dell'immagine

Potrebbe essere necessario regolare un po 'le cose per assicurarsi che i punti non vengano tagliati (vedi, ad esempio, il punto in x = 5e y = 5.


29
Avevo anche bisogno di specificare i limiti scale_x_continuous(expand = c(0, 0), limits = c(0,5))
:, in

3
Penso che un altro pezzo possa essere utile, che sta usando qualcosa del genere in expand=expand_scale(mult=c(0,0.1))modo da ottenere ancora l'imbottitura alle estremità superiori: stackoverflow.com/a/59056123/8400969
Michael,

4

Aggiungili semplicemente al tuo ggplot:

+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

Esempio

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for


p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

inserisci qui la descrizione dell'immagine

Infine, fai molta attenzione a non escludere involontariamente i dati dal tuo grafico . Ad esempio, a position = 'dodge'potrebbe far sì che una barra rimanga completamente fuori dal grafico (ad esempio se il suo valore è zero e si avvia l'asse da zero), quindi è possibile che non si veda e che non si sappia nemmeno che è lì. Raccomando innanzitutto di tracciare i dati per intero, ispezionare, quindi utilizzare il suggerimento sopra per migliorare l'estetica della trama.


è anche possibile incorporarlo in un nuovo tema di ggplot?
Bolle,

@Bolle non ne sono sicuro, ma sono interessato a scoprirlo, potresti fare una domanda separata e un link qui
stevec

Link qui per riferimento futuro
stevec
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.