Вместо этого вы должны отсортировать как прогнозируемые, так и значения X по порядку значений X.Один из способов сделать это - передать упорядоченный набор значений в функцию lm.Тогда прогнозируемые значения также будут отражать этот порядок:
plot( df$Q, dg$C )
cur <- lm(C~I(1/Q), data=df[order[df$Q), ] )
lines(df$Q, predict(cur), col = "green")