簡體   English   中英

如何在R中的成對上下面板中使用不同的數據集?

[英]How to use different sets of data in lower and upper panel of pairs function in R?

想要在R中創建散點圖矩陣,所以我使用的函數pairs如下所示:

pairs(X, lower.panel=panel.contour1, gap=0.5)

如何向panel.contour1函數引入另一組數據(稱為Y )? 基本上,我需要為矩陣圖的上下三角形使用2組不同的數據。

也許有一種方法可以傳遞其他數據集,但是如果失敗,您可以rbind XY ,然后引用lower.panelupper.panel的相關子集。

例如:

X <- matrix(runif(300), ncol=3)
Y <- matrix(c(sort(runif(100, 0, 10)), 
              sort(runif(100, 0, 10)),
              sort(runif(100, 0, 10))), ncol=3)
XY <- rbind(X, Y)

pairs(XY,
      lower.panel=function(x, y, ...) {
        Xx <- x[seq_len(nrow(X))] # corresponds to X subset
        Xy <- y[seq_len(nrow(X))] # corresponds to X subset
        usr <- par("usr"); on.exit(par(usr))
        par(usr = c(range(X[, -ncol(X)]), range(X[, -1]))) # set up limits
        points(Xx, Xy)
        if(par('mfg')[2] == 1) axis(2) # if left plot, add left axis
        if(par('mfg')[1] == ncol(X)) axis(1) # if bottom plot add bottom axis
      }, 
      upper.panel=function(x, y, ...) {
        Yx <- x[(nrow(X) + 1):length(x)] # Y subset
        Yy <- y[(nrow(X) + 1):length(y)] # Y subset
        cntr <- outer(Yx, Yx, FUN='*') # arbitrary function for contour
        usr <- par("usr"); on.exit(par(usr))
        par(usr = c(range(Y[, -1]), range(Y[, -ncol(Y)]))) # set up limits
        contour(Yx, Yy, cntr, add=TRUE)
        if(par('mfg')[2] == ncol(Y)) axis(4) # if right plot, add right axis
        if(par('mfg')[1] == 1) axis(3) # if top plot, add top axis
      }, 
      tick=FALSE, # suppress the default tick marks
      line=10) # move the default tick labels off the plot 

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM