当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R matplot 绘制矩阵的列


R语言 matplot 位于 graphics 包(package)。

说明

将一个矩阵的列与另一个矩阵的列(通常只是被视为 1 列矩阵的向量)进行比较。

用法

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, ...)

参数

x , y

用于绘图的数据向量或矩阵。行数应该匹配。如果其中之一缺失,则另一个被视为y,并使用1:nx 向量。允许缺失值 (NA s)。通常,保留xy(例如"Date")的class(.)

type

字符串(长度为 1 的向量)或 1 字符字符串的向量,指示 y 每一列的绘图类型,请参阅 plot 了解所有可能的 typetype 的第一个字符定义第一个绘图,第二个字符定义第二个绘图,依此类推。 type 中的字符循环;例如,"pl" 交替绘制点和线。

lty , lwd , lend

线型、宽度和末端样式的向量。第一个元素用于第一列,第二个元素用于第二列,依此类推,即使没有为所有列绘制线条。线型将循环使用,直到绘制完所有图。

pch

用于绘制字符的字符串或 1 个字符或整数的向量,有关详细信息,请参阅points。第一个字符是第一个图的 plotting-character,第二个字符是第二个图,依此类推。默认为数字(1 到 9、0),然后是小写和大写字母。

col

颜色向量。颜色是循环使用的。

cex

字符扩展大小的向量,循环使用。这是 par("cex") 的倍数。 NULL 相当于 1.0

bg

pch = 21:25 给出的开放图符号的背景(填充)颜色向量,如 points 中。默认 NA 对应于底层函数 plot.xy 之一。

xlab , ylab

x 轴和 y 轴的标题,如 plot 中。

xlim , ylim

x 轴和 y 轴的范围,如 plot 中。

log , ...

图形参数(参见 par )和 plot 的任何其他参数(通常是 plot.default )也可以作为参数提供给该函数;甚至 panel.first 等现在也可以工作。因此,par 下说明的高级图形控制参数和 title 的参数可以提供给该函数。

add

合乎逻辑的。如果 TRUE ,则使用 pointslines 将绘图添加到当前绘图。

verbose

合乎逻辑的。如果是TRUE,写一行所做的事情。

细节

matplot(x,y, ..) 本质上是一个包装器

  1. 为第一列调用(通用函数)plot(x[,1], y[,1], ..)(仅当 add = TRUE 时)。

  2. 为后续列调用(通用)lines(x[,j], y[,j], ..)

注意保留xyclass(.),以便调用相应的plot()lines()方法。

不绘制涉及缺失值的点。

x 的第一列相对于 y 的第一列绘制,x 的第二列相对于 y 的第二列绘制,依此类推。如果一个矩阵的列数较少,则绘图将循环返回各列再次。 (特别是,xy 可以是一个向量,将根据该向量绘制另一个参数的所有列。)

col, cex, lty, lwd 的第一个元素用于绘制轴以及第一条线。

由于绘图符号是用线条绘制的,并且这些函数可能会更改线条样式,因此在使用绘图符号时您可能应该指定lty = 1

副作用

函数 matplot 生成一个新图; matpointsmatlines 添加到当前的值。

例子

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)

## '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])

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

plotpointslinesmatrixpar

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Plot Columns of Matrices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。