繁体   English   中英

对矩阵与qq图

[英]Pairs matrix with qq-plots

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

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

在此处输入图片说明

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

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

在此处输入图片说明

当您有多个组时,如果有一个成对类型的图将显示一个qq-plots矩阵将很方便。

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

有这样的功能吗? 是否有直接的方法可以从头开始编写代码?

您可以通过*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)

在此处输入图片说明

当然,您可以使用panel=panel.qq绘制所有平方qq图

我只是将qqplot放到面板函数中而出现错误,它似乎通过使用'new = TRUE'而被@rawr解决。 我的方法是提取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)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM