Aliases: matplot matpoints matlines
### ** Examples require(grDevices) matplot((-4:5)^2, main = "Quadratic") # almost identical to plot(*)
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y)) matplot(sines, pch = 1:4, type = "o", col = rainbow(ncol(sines)))
matplot(sines, type = "b", pch = 21:23, col = 2:5, bg = 2:5, main = "matplot(...., pch = 21:23, bg = 2:5)")
x <- 0:50/50 matplot(x, outer(x, 1:8, function(x, k) sin(k*pi * x)), ylim = c(-2,2), type = "plobcsSh", main= "matplot(,type = \"plobcsSh\" )")
## pch & type = vector of 1-chars : matplot(x, outer(x, 1:4, function(x, k) sin(k*pi * x)), pch = letters[1:4], type = c("b","p","o"))
lends <- c("round","butt","square") matplot(matrix(1:12, 4), type="c", lty=1, lwd=10, lend=lends) text(cbind(2.5, 2*c(1,3,5)-.4), lends, col= 1:3, cex = 1.5)
table(iris$Species) # is data.frame with 'Species' factor
setosa versicolor virginica 50 50 50
iS <- iris$Species == "setosa" iV <- iris$Species == "versicolor" op <- par(bg = "bisque") matplot(c(1, 8), c(0, 4.5), type = "n", xlab = "Length", ylab = "Width", main = "Petal and Sepal Dimensions in Iris Blossoms") matpoints(iris[iS,c(1,3)], iris[iS,c(2,4)], pch = "sS", col = c(2,4)) matpoints(iris[iV,c(1,3)], iris[iV,c(2,4)], pch = "vV", col = c(2,4)) legend(1, 4, c(" Setosa Petals", " Setosa Sepals", "Versicolor Petals", "Versicolor Sepals"), pch = "sSvV", col = rep(c(2,4), 2))
nam.var <- colnames(iris)[-5] nam.spec <- as.character(iris[1+50*0:2, "Species"]) iris.S <- array(NA, dim = c(50,4,3), dimnames = list(NULL, nam.var, nam.spec)) for(i in 1:3) iris.S[,,i] <- data.matrix(iris[1:50+50*(i-1), -5]) matplot(iris.S[, "Petal.Length",], iris.S[, "Petal.Width",], pch = "SCV", col = rainbow(3, start = 0.8, end = 0.1), sub = paste(c("S", "C", "V"), dimnames(iris.S)[[3]], sep = "=", collapse= ", "), main = "Fisher's Iris Data")
par(op) ## 'x' a "Date" vector : nd <- length(dv <- seq(as.Date("1959-02-21"), by = "weeks", length.out = 100)) mSC <- cbind(I=1, sin=sin(pi*(1:nd)/8), cos=cos(pi*(1:nd)/8)) matplot(dv, mSC, type = "b", main = "matplot(<Date>, y)")
## 'x' a "POSIXct" date-time vector : ct <- seq(c(ISOdate(2000,3,20)), by = "15 mins", length.out = 100) matplot(ct, mSC, type = "b", main = "matplot(<POSIXct>, y)")
## or the same with even more axis flexibility: matplot(ct, mSC, type = "b", main = "matplot(<POSIXct>, y)", xaxt="n") Axis(ct, side=1, at = ct[1+4*(0:24)])
## Also works for data frame columns: matplot(iris[1:50,1:4])