【问题标题】:How to have R corrplot title position correct?如何让 R corrplot 标题位置正确?
【发布时间】:2017-03-23 09:30:15
【问题描述】:

标题错误定位在窗口页面之外的代码及其输出:

library('corrplot')

#options(error=recover) # http://stackoverflow.com/a/15031603/54964
#debugger()
# load("last.dump.rda"); debugger(last.dump) # run if fail
options(error=function() dump.frames(to.file=TRUE))

# http://www.sthda.com/english/wiki/visualize-correlation-matrix-using-correlogram
cor.mtest <- function(mat, ...) {
    mat <- as.matrix(mat)
    n <- ncol(mat)
    p.mat<- matrix(NA, n, n)
    diag(p.mat) <- 0
    for (i in 1:(n - 1)) {
        for (j in (i + 1):n) {
            tmp <- cor.test(mat[, i], mat[, j], ...)
            p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
        }
    }
  colnames(p.mat) <- rownames(p.mat) <- colnames(mat) 
  p.mat
}

M <- cor(mtcars)

p.mat <- cor.mtest(M)

title <- "ECG p-value significance"
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(M, method="color", col=col(200),  
     diag=FALSE, # tl.pos="d", 
         type="upper", order="hclust", 
     title=title, 
         addCoef.col = "black", # Add coefficient of correlation
         # Combine with significance
         p.mat = p.mat, sig.level = 0.05, insig = "blank" 
         # hide correlation coefficient on the principal diagonal
         )

图。 1 个输出

R:3.3.1
操作系统:Debian 8.5
相关票证:#72

【问题讨论】:

    标签: r title correlation figure r-corrplot


    【解决方案1】:

    mar=c(0,0,1,0) 修复问题的代码

    library('corrplot')
    
    # http://www.sthda.com/english/wiki/visualize-correlation-matrix-using-correlogram
    cor.mtest <- function(mat, ...) {
        mat <- as.matrix(mat)
        n <- ncol(mat)
        p.mat<- matrix(NA, n, n)
        diag(p.mat) <- 0
        for (i in 1:(n - 1)) {
            for (j in (i + 1):n) {
                tmp <- cor.test(mat[, i], mat[, j], ...)
                p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
            }
        }
      colnames(p.mat) <- rownames(p.mat) <- colnames(mat) 
      p.mat
    }
    
    M <- cor(mtcars)
    
    p.mat <- cor.mtest(M)
    
    title <- "ECG p-value significance"
    col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
    corrplot(M, method="color", col=col(200),  
         diag=FALSE, # tl.pos="d", 
             type="upper", order="hclust", 
         title=title, 
             addCoef.col = "black", # Add coefficient of correlation
             # Combine with significance
             p.mat = p.mat, sig.level = 0.05, insig = "blank", 
             # hide correlation coefficient on the principal diagonal
         mar=c(0,0,1,0) # http://stackoverflow.com/a/14754408/54964
             )
    

    输出

    【讨论】:

    • 你能解释一下mar=c(0,0,1,0)是什么意思吗?
    • 绘图边距(用于边),继承自 par: stat.ethz.ch/R-manual/R-devel/library/graphics/html/par.html
    • 引用link:“c(bottom,left,top,right) 形式的数值向量,它给出了要在绘图的四个边上指定的边距线数. 默认为 c(5, 4, 4, 2) + 0.1。"
    猜你喜欢
    • 2017-03-22
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多