【发布时间】:2017-03-22 13:20:01
【问题描述】:
我想在对角线上获得标签,如图 3 所示,但使用 corrplot,如图 1-2 所示。
我正在研究 corrplot 手册 here 的数字对角线标签。
我不知道有任何方法可以将数字标签放在corrplot 对角线上,因为我设法伪造了所有可能的选择。
伪造的东西
-
函数
cor.mtest中的以下行不能设置数字对角线标签colnames(p.mat) <- rownames(p.mat) <- colnames(mat) <- diag.labels -
colorlegend显然不是这里的正确选择corrplot(...) colorlegend(colbar = grey(1:100 / 100), labels=ids, addlabels = TRUE)
部分事情很高兴知道更多但不限制我们
-
diag=FALSE, tl.pos="d"用于单个单元格。您如何为 N 个单元格制作tl.pos="d"? - -tl.pos=c("d")会导致错误。 - -tl.pos是数字对角线标签所必需的吗?
代码以及 here 用于不同示例,其中包含 K.J.J.K 的第一个答案的提议作为测试用例,但对于该任务显示为错误
library("corrplot")
# http://www.sthda.com/english/wiki/visualize-correlation-matrix-using-correlogram
cor.mtest <- function(mat, diag.labels, ...) {
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) <- diag.labels
p.mat
}
ids <- c(seq(1,11))
M<-cor(mtcars)
p.mat <- cor.mtest(mtcars, diag.labels=ids)
corrplot(M, type="upper", order="hclust", diag=FALSE, # TODO tl.pos=c("d"),
p.mat = p.mat, sig.level = 0.05)
图。 1 输出对角线上没有预期标签的地方,
图 2 伪造 K.J.J.K 的提议,其中对对角线标签没有影响,
图 3 对角线上标注有corrgram 的示例here
预期输出:对角线上的数字标签,如图 3 所示,但其他方面需要装饰,如图 (1-2)
伪造K.J.J.K的提议
获取代码here,您将获得图2中对角线标签没有变化的输出。
操作系统:Debian 8.5
R:3.3.1
开发者 Github 中的门票:#71
【问题讨论】:
-
投反对票!留下反馈!
标签: r correlation diagonal r-corrplot