Preparation

Import data.

str(airquality)
## 'data.frame':    153 obs. of  6 variables:
##  $ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
##  $ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
##  $ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
##  $ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
##  $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ Day    : int  1 2 3 4 5 6 7 8 9 10 ...
data = as.data.frame(na.omit(airquality))

Box plot

Produce a box plot.

boxplot(data$Ozone ~ data$Month, data=data,
        xlab="Month", ylab="Ozone", 
        col=c("red", "blue", "green", "pink", "darkorange"))

Add mean and points.

boxplot(data$Ozone ~ data$Month, data=data,
        xlab="Month", ylab="Ozone",
        col=c("red", "blue", "green", "pink", "darkorange"))
means = tapply(data$Ozone, data$Month, mean)
points(means, pch=8, cex=1.1, col="red")
stripchart(data$Ozone ~ data$Month, data=data, 
           method="jitter", vertical=TRUE, add=TRUE, 
           cex=0.5, pch=18, col="black")

Produce a notched box plot.

boxplot(data$Ozone ~ data$Month, data=data, 
        notch=TRUE, varwidth=FALSE, 
        xlab="Month", ylab="Ozone",
        col=c("red", "blue", "green", "pink", "darkorange"))

Violin plot.

Produce a violin plot.

library(sm)
library(vioplot)
x1 = data$Ozone[data$Month==5]
x2 = data$Ozone[data$Month==6]
x3 = data$Ozone[data$Month==7]
x4 = data$Ozone[data$Month==8]
x5 = data$Ozone[data$Month==9]
vioplot(x1, x2, x3, x4, x5, 
        names=c("Month5","Month6","Month7","Month8","Month9"), 
        col="gold")

Box plot for two crossed factors

Produce a box plot with two factors.

for(i in 1:length(data$Temp)){
  if(data$Temp[i]<75){
    data$Temp[i] = 0
  }
  else{
    data$Temp[i] = 1
  }
}

data$Temp.f = factor(data$Temp, levels=c(0,1), labels=c("warm","hot"))

for(i in 1:length(data$Wind)){
  if(data$Wind[i]<10){
    data$Wind[i] = 0
  }
  else{
    data$Wind[i] = 1
  }
}

data$Wind.f <- factor(data$Wind, levels=c(0,1), labels=c("nonwindy","windy"))

boxplot(data$Ozone ~ data$Temp.f*data$Wind.f,
        data=data, varwidth=FALSE, xlab="Environment Type",
        col=c("gold","darkgreen"))