我正在用ggcorrplot绘制大型数据集的相关矩阵。问题是很难看到轴文本的标签(在下面的示例中,它将是sample1)。与每个标签相关联,我有另一个标签(在下面的示例中,它将是normal for sample1)。是否可以在每个样本标签的周围加上圆括号或方框来注释轴文本标签?
cor.vals <- cor(matrix(rnorm(100), nrow = 10))
colnames(cor.vals) <- paste0("sample", 1:10)
rownames(cor.vals) <- colnames(cor.vals)
ggcorrplot::ggcorrplot(cor.vals)
labels.samples <- c(rep("normal", 5), rep("drug", 5))

对于x轴也是如此。我的数据要大得多,还有更多的类别,所以手动添加它们并不是一种选择。
发布于 2022-03-07 17:20:31
您想要的确切外观在ggplot中是无法直接实现的。您可以使用grid手动添加形状,但我注意到您觉得这并不是一个真正的选项。
一个逻辑上等价且相似的外观可以用facet实现,尽管这需要修改ggcorrplot的输出。
p <- ggcorrplot::ggcorrplot(cor.vals)
p$data$facets_y <- factor(rep(labels.samples, length = nrow(p$data)), c("normal", "drug"))
p$data$facets_x <- rep(labels.samples, each = length(labels.samples))
p$coordinates <- coord_cartesian()
p + facet_grid(facets_x~facets_y, scales = "free", switch = "both") +
theme(panel.spacing = unit(-0.02, "npc"),
axis.ticks.y.left = element_blank(),
strip.background = element_rect(color = c("black")))

https://stackoverflow.com/questions/71384551
复制相似问题