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=0
o un altro valore dato.
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=0
o un altro valore dato.
Risposte:
xlim
e ylim
non tagliarlo qui. È necessario utilizzare expand_limits
, scale_x_continuous
e 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
p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
Potrebbe essere necessario regolare un po 'le cose per assicurarsi che i punti non vengano tagliati (vedi, ad esempio, il punto in x = 5
e y = 5
.
expand=expand_scale(mult=c(0,0.1))
modo da ottenere ancora l'imbottitura alle estremità superiori: stackoverflow.com/a/59056123/8400969
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))
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))
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.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))