Using geom_smooth geom in ggplot2 gets regression strings for display. I am using the mtcars , which is very similar to yours:
ggplot(mtcars) + geom_jitter(aes(disp,mpg), colour="blue") + geom_smooth(aes(disp,mpg), method=lm, se=FALSE) + geom_jitter(aes(hp,mpg), colour="green") + geom_smooth(aes(hp,mpg), method=lm, se=FALSE) + geom_jitter(aes(qsec,mpg), colour="red") + geom_smooth(aes(qsec,mpg), method=lm, se=FALSE) + labs(x = "Percentage cover (%)", y = "Number of individuals (N)")
Also, I removed aes(y=y,x=x) from ggplot , as it does not make any difference. Result:

There is a more complicated (but better looking) method to achieve the same, using the melt package from reshape2 :
require(ggplot2) require(reshape2) mtcars2 = melt(mtcars, id.vars='mpg') ggplot(mtcars2) + geom_jitter(aes(value,mpg, colour=variable),) + geom_smooth(aes(value,mpg, colour=variable), method=lm, se=FALSE) + facet_wrap(~variable, scales="free_x") + labs(x = "Percentage cover (%)", y = "Number of individuals (N)")
One of the important elements of this solution is the option scales="free_x" , which allows you to independently scale X for each facet graph.
