Graphics
#first get some data
datafilename="http://personality-project.org/r/datasets/maps.mixx.epi.bfi.data"
data =read.table(datafilename,header=TRUE) #read the data file
#see the graphic window for the output
boxplot(epi) #boxplot of the five epi scales
hist(epiE) #simple histogram
plot(epiE,epiImp) #simple scatter plot
model=lm(epiImp~epiE) #find the regression of Imp on E
abline(model) #show the best fit regression line
pairs(epi) #splom plot
Boxplot
Histogram
Simple scatter plot
Basic ScatterPlot Matrix (SPLOM)
More advanced graphics take advantage of the power of R to operate on the figure. The following code is taken from the help menu for the pairs command. It shows a SPLOM in the lower diagonal and reports the correlation coeffients in the upper diagnonal, scaling the font size to reflect the absolute value of the correlation. Note that once the function (panel.cor) is declared, it can but used later for other plots.
## the following code and figure is adapted from the help file for pairs
## put (absolute) correlations on the upper panels,
## with size proportional to the correlations.
#first create a function (panel.cor)
panel.cor <- function(x, y, digits=2, prefix="", cex.cor)
{
usr <- par("usr"); on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r = (cor(x, y))
txt <- format(c(r, 0.123456789), digits=digits)[1]
txt <- paste(prefix, txt, sep="")
if(missing(cex.cor)) cex <- 0.8/strwidth(txt)
text(0.5, 0.5, txt, cex = cex * abs(r))
}
# now use the function for the epi data. (see figure)
pairs(epi, lower.panel=panel.smooth, upper.panel=panel.cor)
#use the same function for yet another graph.
pairs(bfi, lower.panel=panel.smooth, upper.panel=panel.cor)
Scatter plot matrix of EPI scales -- font size adjusted for absolute value of correlation
#this next command defines a new function which can then be used
#for making multiple histograms
multi.hist <- function(x) {nvar <- dim(x)[2] #number of variables
nsize=trunc(sqrt(nvar))+1 #size of graphic
old.par <- par(no.readonly = TRUE) # all par settings which can be changed
par(mfrow=c(nsize,nsize)) #set new graphic parameters
for (i in 1:nvar) {
name=names(x)[i] #get the names for the variables
hist(x[,i],main=name,xlab=name) } #draw the histograms for each variable
on.exit(par(old.par)) #set the graphic parameters back to the original
}
#now use the function on the data
multi.hist(person.data) #draw the histograms for all variables (see above)
part of a short guide to R
Version of November 26, 2004
William Revelle
>Department of Psychology
Northwestern University