A solução óbvia usando geom_abline:
geom_abline(slope = data.lm$coefficients[2], intercept = data.lm$coefficients[1])
Onde data.lmestá um lmobjeto e se data.lm$coefficientsparece com isto:
data.lm$coefficients
(Intercept) DepDelay
-2.006045 1.025109
Idêntico na prática é usar stat_functionpara traçar a linha de regressão como uma função de x, fazendo uso de predict:
stat_function(fun = function(x) predict(data.lm, newdata = data.frame(DepDelay=x)))
Isso é um pouco menos eficiente, pois, por padrão, os n=101pontos são calculados, mas muito mais flexível, pois traçará uma curva de previsão para qualquer modelo compatível predict, como não linear npregdo pacote np.
Nota: Se você usar scale_x_continuousou, scale_y_continuousalguns valores podem ser cortados e, portanto, geom_smoothpodem não funcionar corretamente. Use coord_cartesianpara aumentar o zoom .