Back to overview

3. Visualization of data

This document lists and illustrates a number of basic plot functions. For replicating the example scripts, please load the restructured data set AirPassengers (see help(AirPassengers)) in R:

load('dat-AirPassengers.rda')

BASIC PLOT FUNCTIONS

plot

The function plot sets up a plotting grid. The function optionally adds data in the form of a line or points, depending on the argument type. If you just would like to set up an empty grid and add data later, you could use the argument type='n'. Here are some examples:

dat$Time <- dat$Year+dat$Month/12

# by default, type is set to 'p': points
plot(x=dat$Time, y=dat$AirPassengers)

# ... but lines may be more insightful here:
plot(x=dat$Time, y=dat$AirPassengers, type='l',
     main="Title", xlab="Year", ylab="AirPassengers")

# we could also set up an empty plot, to add points or lines later:
plot(x=c(), y=c(), type='n',
     xlim=range(dat$Time), ylim=range(dat$AirPassengers),
     main="Title", xlab="Year", ylab="AirPassengers",
     bty='n') # <- no box around plot

# the library plotfunctions provides a wrapper for doing this:
library(plotfunctions)
# note that we set the *range* rather than actual values here
emptyPlot( range(dat$Time), range(dat$AirPassengers)) 

# main, xlab, and ylab can be also included as arguments (and many others) 

See help(par) for graphical parameters that can be added to most plotting functions to change the layout and colors.

points

The function points is used to add points to a plot grid. The argument pch specifies the layout.

emptyPlot( range(dat$Time), range(dat$AirPassengers)) 
points(dat$Time, dat$AirPassengers, 
       pch=16, col=alpha(2)) # <- alpha() from package plotfunctions 

                             # could be used to adjust transparency of colors

Various types of points:

par(cex=1.1)
emptyPlot(c(0,6), c(0,6), axes=FALSE, bty='o')
for(i in 1:5){
  for(j in 1:5){
    points(i, j, pch=(i-1)*5+j, bg=alpha(2))
    text(i,j,labels=(i-1)*5+j, cex=.5, pos=3, col='red')
  }
}