Масштабирование размера круга в функции R corrplot
Я уже какое-то время застрял на этой проблеме. Может, здесь кто-нибудь сможет мне помочь.
У меня есть три матрицы, похожие на корреляционную матрицу.
mtxQ
содержит значения "корреляции".
mtxN
содержит номер общего наблюдаемого набора значений.
mtxP
содержит соответствующие pvalue (пока предположим, что это pvalue cor.test).
### Exemplary dataset ###
df <- mtcars[, c(1,3:5)]
mtxQ <- round(cor(df)*100, 2)
mtxP <- round(cor.mtest(df)$p, 5)
colnames(mtxP) <- row.names(mtxP) <- row.names(mtxQ)
mtxN <- data.frame(mpg = c(100,80,15,5),
disp = c(80,145,6,4),
hp = c(15,6,20,5),
drat = c(5,4,5,5),
row.names = row.names(mtxQ))
mtxN <- as.matrix(mtxN)
require(corrplot)
require(RColorBrewer)
# for mtxQ
corrplot(mtxQ, type = "upper", tl.col="black", tl.srt=35, diag = T, addgrid.col = NA, na.label = "nc",
col = brewer.pal(n=10, name="RdYlBu"),
method = "circle",
#order = "hclust",
title = "mtxQ with non sign. removed",
hclust.method = "average",
p.mat = mtxP, sig.level = .001, insig = "blank",
is.corr = FALSE, cl.lim = c(-100, 100),
mar=c(0,0,3,0)
)
Однако я хочу масштабировать размер кружков после
log2(mtxN)
такие значения:
# for mtxN
mtx <- log2(mtxN)
corrplot(mtx, type = "upper", tl.col="black", tl.srt=35, diag = T, addgrid.col = NA, na.label = "nc",
method = "circle",
title = "mtxN with non sign. removed",
hclust.method = "average",
p.mat = mtxP, sig.level = .001, insig = "blank",
is.corr = FALSE, cl.lim = c(floor(min(mtx)-.5),ceiling(max(mtx))),
mar=c(0,0,3,0)
)
Как видите, это все еще не то, что я хотел. Как создать сюжет, в котором:
- цвет пузырей соответствует значениям в mtxQ
- размер пузырей соответствует log2(mtxN)
- значения mtxN отображаются в пузырьках
- результаты ниже определенного значения pvalue (mtxP) не отображаются на графике
Я не уверен, что это можно сделать с помощью corrplot(). Возможно, альтернативой может стать ggcorrplot. Но я тоже не мог этого понять.
Заранее большое спасибо:)