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

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 = 5e 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))