matplot
Plot Columns of Matrices
Plot the columns of one matrix against the columns of another.
Usage
matplot(x, y, type = "p", lty = 1:5, lwd = 1, lend = par("lend"),
pch = NULL,
col = 1:6, cex = NULL, bg = NA,
xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL,
log = "", …, add = FALSE, verbose = getOption("verbose"))matpoints(x, y, type = "p", lty = 1:5, lwd = 1, pch = NULL,
col = 1:6, …)
matlines (x, y, type = "l", lty = 1:5, lwd = 1, pch = NULL,
col = 1:6, …)
Arguments
- x,y
vectors or matrices of data for plotting. The number of rows should match. If one of them are missing, the other is taken as
y
and anx
vector of1:n
is used. Missing values (NA
s) are allowed.- type
character string (length 1 vector) or vector of 1-character strings indicating the type of plot for each column of
y
, seeplot
for all possibletype
s. The first character oftype
defines the first plot, the second character the second, etc. Characters intype
are cycled through; e.g.,"pl"
alternately plots points and lines.- lty,lwd,lend
vector of line types, widths, and end styles. The first element is for the first column, the second element for the second column, etc., even if lines are not plotted for all columns. Line types will be used cyclically until all plots are drawn.
- pch
character string or vector of 1-characters or integers for plotting characters, see
points
. The first character is the plotting-character for the first plot, the second for the second, etc. The default is the digits (1 through 9, 0) then the lowercase and uppercase letters.- col
vector of colors. Colors are used cyclically.
- cex
vector of character expansion sizes, used cyclically. This works as a multiple of
par("cex")
.NULL
is equivalent to1.0
.- bg
vector of background (fill) colors for the open plot symbols given by
pch = 21:25
as inpoints
. The defaultNA
corresponds to the one of the underlying functionplot.xy
.- xlab, ylab
titles for x and y axes, as in
plot
.- xlim, ylim
ranges of x and y axes, as in
plot
.- log, …
Graphical parameters (see
par
) and any further arguments ofplot
, typicallyplot.default
, may also be supplied as arguments to this function; evenpanel.first
etc now work. Hence, the high-level graphics control arguments described underpar
and the arguments totitle
may be supplied to this function.- add
logical. If
TRUE
, plots are added to current one, usingpoints
andlines
.- verbose
logical. If
TRUE
, write one line of what is done.
Details
Points involving missing values are not plotted.
The first column of x
is plotted against the first column of
y
, the second column of x
against the second column of
y
, etc. If one matrix has fewer columns, plotting will cycle
back through the columns again. (In particular, either x
or
y
may be a vector, against which all columns of the other
argument will be plotted.)
The first element of col, cex, lty, lwd
is used to plot the axes
as well as the first line.
Because plotting symbols are drawn with lines and because these
functions may be changing the line style, you should probably specify
lty = 1
when using plotting symbols.
Side Effects
Function matplot
generates a new plot;
matpoints
and matlines
add to the current one.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
Examples
library(graphics)
# NOT RUN {
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
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)
# }