(This article was first published on

**OUseful.Info, the blog... » Rstats**, and kindly contributed to R-bloggers)Looking just now for an openly licensed graphic showing a set of scatterplots that demonstrate different correlations between X and Y values, I couldn’t find one.

So here’s a quick R script for constructing one, based on a Cross Validated question/answer (Generate two variables with precise pre-specified correlation):

library(MASS) corrdata=function(samples=200,r=0){ data = mvrnorm(n=samples, mu=c(0, 0), Sigma=matrix(c(1, r, r, 1), nrow=2), empirical=TRUE) X = data[, 1] # standard normal (mu=0, sd=1) Y = data[, 2] # standard normal (mu=0, sd=1) data.frame(x=X,y=Y) } df=data.frame() for (i in c(1,0.8,0.5,0.2,0,-0.2,-0.5,-0.8,-1)){ tmp=corrdata(200,i) tmp['corr']=i df=rbind(df,tmp) } library(ggplot2) g=ggplot(df,aes(x=x,y=y))+geom_point(size=1) g+facet_wrap(~corr)+ stat_smooth(method='lm',se=FALSE,color='red')

And here’s an example of the result:

It’s actually a little tidier if we also add in `+ coord_fixed()` to fix up the geometry/aspect ratio of the chart so the axes are of the same length:

So what sort of OER does that make this post?!;-)

PS methinks it would be nice to be able to use different distributions, such as a uniform distribution across x. Is there a similarly straightforward way of doing that?

To

**leave a comment**for the author, please follow the link and comment on their blog:**OUseful.Info, the blog... » Rstats**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...