R - plot lm issues with multivariate OLS I am having trouble plotting multivariate ols regression in R using ggplot2. 
When I run the model without "control" variables, the regression lines are fine: 
library(dplyr)
library(ggplot2)
library(broom)

# model without "controls" # 
dt = mtcars %>% do(lm0 = lm(wt ~ disp + am, data = .)) %>% augment(.,lm0) 
dt$am = as.factor(dt$am)

ggplot(data = dt, aes(disp, wt) ) + 
  geom_point() + 
  geom_line(data = dt, aes(disp, .fitted, group = am, colour = am)) +
  theme_bw()


However, when I introduce "controls" (here for the example hp + drat + I(drat)^2), the lines are getting strange. I am not sure what's wrong here. 
Any idea ? Any idea how to plot multivariate regressions with ggplot by group ? 
dt = mtcars %>% do(lm0 = lm(wt ~ disp + am + hp + drat + I(drat)^2, data = .)) %>% augment(.,lm0) 
dt$am = as.factor(dt$am)

ggplot(data = dt, aes(disp, wt) ) + 
  geom_point() + 
  geom_line(data = dt, aes(disp, .fitted, group = am, colour = am)) +
  theme_bw()


 A: Taking whuber's suggestion into account, I did not flag the question. But maybe it is about the difference between geom_line() and geom_smooth(). In Hadley Wickham's ggplot2 book, it is briefly explained that "geom_smooth() fits a smoother to the data and displays the smooth and its standard error" whereas "geom_path() and geom_line() draw lines between the data points." (Wickham, 2015). So, maybe this is what you are looking for (note the method="lm"),
dt = mtcars %>% do(lm0 = lm(wt ~ disp + am + hp + drat + I(drat)^2, data = .)) %>% augment(.,lm0) 
dt$am = as.factor(dt$am)

ggplot(data = dt, aes(disp, wt) ) + 
  geom_point() + 
  geom_smooth(data = dt, aes(disp, .fitted, group = am, colour = am), method="lm") +
  theme_bw()


But the issue here is also what goes into aes() argument in the first line of the function. So, if I reproduce your second graph with aes(disp, .fitted) instead of aes(disp, wt). It will show lines between data points as Wickham explained,
ggplot(data = dt, aes(disp, .fitted) ) + 
  geom_point() + 
  geom_line(data = dt, aes(disp, .fitted, group = am, colour = am)) +
  theme_bw() 


In the end, I think this is a coding question about which arguments go into aes() and how variables are mapped. You map aes(disp, wt) but fit the line for aes(disp, .fitted).
