Il comportamento che stai vedendo è dovuto al modo in cui ggplot2
tratta i dati che sono al di fuori degli intervalli degli assi del grafico. È possibile modificare questo comportamento a seconda che si utilizzi scale_y_continuous
(o, in modo equivalente ylim
) o coord_cartesian
per impostare gli intervalli degli assi, come spiegato di seguito.
library(ggplot2)
ggplot(mtcars, aes(mpg, hp)) +
geom_point()
Nel codice seguente, un punto con hp = 335 è al di fuori dell'intervallo y del grafico. Inoltre, poiché eravamo soliti scale_y_continuous
impostare l'intervallo dell'asse y, questo punto non è incluso in altre statistiche o misure di riepilogo calcolate da ggplot, come la linea di regressione lineare.
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
scale_y_continuous(limits=c(0,300)) +
geom_smooth(method="lm")
Warning messages:
1: Removed 1 rows containing missing values (stat_smooth).
2: Removed 1 rows containing missing values (geom_point).
Nel codice seguente, il punto con hp = 335 è ancora al di fuori dell'intervallo y del grafico, ma questo punto è comunque incluso in tutte le statistiche o misure di riepilogo che ggplot calcola, come la linea di regressione lineare. Questo perché eravamo soliti coord_cartesian
impostare l'intervallo dell'asse y e questa funzione non esclude i punti che sono al di fuori degli intervalli del grafico quando esegue altri calcoli sui dati.
Se confronti questo e il grafico precedente, puoi vedere che la retta di regressione lineare nel secondo grafico ha una pendenza leggermente più ripida, perché il punto con hp = 335 è incluso nel calcolo della retta di regressione, anche se non è visibile nel grafico .
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
coord_cartesian(ylim=c(0,300)) +
geom_smooth(method="lm")
y
all'asse su questa domanda. I valori sono limitati tra 0 e 0,12 a causa di questa funzione:ylim(0,0.12)