轮廓图
轮廓图
outline <- function(x, txt = TRUE){
if (is.data.frame(x) == TRUE)
x <- as.matrix(x)
m <- nrow(x); n <- ncol(x)
plot(c(1,n), c(min(x),max(x)), type = "n",
main = "The outline graph of Data",
xlab = "Number", ylab = "Value")
for(i in 1:m){
lines(x[i,], col=i)
if (txt == TRUE){
k <- dimnames(x)[[1]][i]
text(1+(i-1)%%n, x[i,1+(i-1)%%n], k)
}
}
}
其中x是数据框或者矩阵。txt=TRUE是缺省值时,绘图时给出观测值的标号;否则不给出标号。
例:
source("outline.R")
outline(X)
星图
stars(x, full = TRUE, scale = TRUE, radius = TRUE,
labels = dimnames(x)[[1]], locations = NULL,
nrow = NULL, ncol = NULL, len = 1,
key.loc = NULL, key.labels = dimnames(x)[[2]], key.xpd = TRUE,
xlim = NULL, ylim = NULL, flip.labels = NULL,
draw.segments = FALSE, col.segments = 1:n.seg, col.stars = NA,
axes = FALSE, frame.plot = axes,
main = NULL, sub = NULL, xlab = “”, ylab = “”,
cex = 0.8, lwd = 0.25, lty = par(“lty”), xpd = FALSE,
mar = pmin(par(“mar”),
1.1+ c(2axes+ (xlab != “”),
2axes+ (ylab != “”), 1,0)),
add = FALSE, plot = TRUE, …)
其中x是矩阵或者数据框。full=TRUE(缺省值)时,则星图画成圆的,否则(FALSE)画成上半圆形。scale=TRUE(缺省值),数据矩阵的每一列是独立的,并且每列的最大值为1,最小值为0,否则所有星图会叠在一起。radius=TRUE(缺省值)绘出星图的半径构成的连线,否则绘出的星图无半径构成的连线。len是半径尺度因子(缺省值为1),表明星图的比例。key.loc是一个由x与y坐标构成的向量(缺省值为NULL),它表明标准星的位置。draw.segments=TRUE(缺省值时FALSE),绘出的星图是一段一段的弧。
调和曲线图
unison <- function(x){
if (is.data.frame(x) == TRUE)
x <- as.matrix(x)
t <- seq(-pi, pi, pi/30)
m <- nrow(x); n<-ncol(x)
f <- array(0, c(m,length(t)))
for(i in 1:m){
f[i,] <- x[i,1]/sqrt(2)
for( j in 2:n){
if (j%%2 == 0)
f[i,] <- f[i,]+x[i,j]*sin(j/2*t)
else
f[i,] <- f[i,]+x[i,j]*cos(j%/%2*t)
}
}
plot(c(-pi,pi), c(min(f), max(f)), type = "n",
main = "The Unison graph of Data",
xlab = "t", ylab = "f(t)")
for(i in 1:m) lines(t, f[i,] , col = i)
}