为 ggcorrplot 的轴文本添加注释
Add annotation to axis text for ggcorrplot
我正在使用 ggcorrplot
绘制大型数据集的相关矩阵。问题是很难看到轴文本的标签(在下面的示例中,例如 sample1
)。与每个标签关联,我有另一个标签(在下面的示例中,例如 normal
表示 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 轴也是如此。我的数据更大,类别更多,因此手动添加它们并不是真正的选择。
无法直接在 ggplot
中实现您想要的确切外观。您可以使用 grid
手动添加形状来完成此操作,但我注意到您觉得这不是一个真正的选择。
虽然这需要修改 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")))
我正在使用 ggcorrplot
绘制大型数据集的相关矩阵。问题是很难看到轴文本的标签(在下面的示例中,例如 sample1
)。与每个标签关联,我有另一个标签(在下面的示例中,例如 normal
表示 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 轴也是如此。我的数据更大,类别更多,因此手动添加它们并不是真正的选择。
无法直接在 ggplot
中实现您想要的确切外观。您可以使用 grid
手动添加形状来完成此操作,但我注意到您觉得这不是一个真正的选择。
虽然这需要修改 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")))