具有qq图的对矩阵

时间:2014-11-11 21:12:04

标签: r

能够查看您的数据很有帮助。如果有多个变量,则可以使用例如pairs()形成散点图矩阵。散点图矩阵为您提供了一组数据的二维边缘投影。

set.seed(8092)
X <- matrix(rnorm(80), ncol=4)
pairs(X)

enter image description here

您还可以拥有不同群组的数据,并希望比较他们的分布。可以将两个这样的分布与qq图进行比较。

set.seed(4415)
group1 <- rnorm(20)
group2 <- rnorm(20)
qqplot(group1, group2)
abline(c(0,1))

enter image description here

当你有几个小组时,如果有一个显示qq-plot矩阵的成对类型的图表会很方便。

colnames(X) <- c("group1", "group2", "group3", "group4")
qq.pairs(X)

有这样的功能吗?有没有直接的方法从头开始编码?

2 个答案:

答案 0 :(得分:4)

您可以通过*panel args添加您喜欢的任何功能。例如:

set.seed(8092)
X <- matrix(rnorm(80), ncol=4)

panel.qq <- function(x, y, ...) {
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(0, 1, 0, 1), new = TRUE)
  qqplot(x, y, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)))
  abline(c(0,1), ...)
}

pairs(X, lower.panel = panel.qq)

enter image description here

当然,您可以使用panel=panel.qq制作所有正方形qq图

答案 1 :(得分:2)

我只是将qqplot放在面板函数中出现错误,它显示@rawr使用&#39; new = TRUE&#39;解决。我的方法是提取x和y值并使用points

panel.qq <- function(x,y, ...)
{    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(usr[1:2], -2,2) )
    QQ <- qqplot(x,y, plot.it = FALSE)
    x <- QQ$x; 
    y <- QQ$y; 
    points(x, y, col = "cyan", ...)
    abline(0,1)
}

set.seed(8092)
X <- matrix(rnorm(80), ncol=4)
pairs(X, upper.panel=panel.qq)

enter image description here