O comportamento que você está vendo é devido ao modo como ggplot2
lida com os dados que estão fora dos intervalos do eixo do gráfico. Você pode alterar este comportamento dependendo se você usa scale_y_continuous
(ou, de forma equivalente, ylim
) ou coord_cartesian
para definir intervalos de eixo, conforme explicado abaixo.
library(ggplot2)
ggplot(mtcars, aes(mpg, hp)) +
geom_point()
No código a seguir, um ponto com hp = 335 está fora do intervalo y do gráfico. Além disso, como costumávamos scale_y_continuous
definir o intervalo do eixo y, esse ponto não é incluído em nenhuma outra estatística ou medida de resumo calculada por ggplot, como a linha de regressão linear.
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).
No código a seguir, o ponto com hp = 335 ainda está fora do intervalo y do gráfico, mas esse ponto está incluído em quaisquer estatísticas ou medidas de resumo que ggplot calcula, como a linha de regressão linear. Isso é porque usamoscoord_cartesian
definir o intervalo do eixo y, e esta função não exclui pontos que estão fora dos intervalos do gráfico quando ela faz outros cálculos nos dados.
Se você comparar este gráfico com o anterior, pode ver que a linha de regressão linear no segundo gráfico tem uma inclinação ligeiramente mais acentuada, porque o ponto com hp = 335 é incluído ao calcular a linha de regressão, embora não seja visível no gráfico .
ggplot(mtcars, aes(mpg, hp)) +
geom_point() +
coord_cartesian(ylim=c(0,300)) +
geom_smooth(method="lm")
y
eixo dessa questão. Os valores são limitados entre 0 e 0,12 devido a esta função:ylim(0,0.12)