首页 > 解决方案 > 将 Grob 对象的长图例拆分为 2 列

问题描述

所以我有一个热图的 grob 对象,其中我的实际组(条件)太多(49),因此它溢出了情节。我的问题是如何将带有条件 (condition1-10) 的图例 grob 拆分为多个列(例如,示例中的 10 列中的 2 列或原始列中的 25 列中的 2 列),以使其适合情节。

谢谢!

data <- replicate(20, rnorm(50))
rownames(data) <- paste("Gene", c(1:nrow(data)))
colnames(data) <- paste("Sample", c(1:ncol(data)))

metadata <- data.frame(
c(rep("cond1", ncol(data)/10), rep("cond2", ncol(data)/10), rep("cond3", ncol(data)/10),
rep("cond4", ncol(data)/10), rep("cond5", ncol(data)/10), rep("cond6", ncol(data)/10),
rep("cond7", ncol(data)/10), rep("cond8", ncol(data)/10), rep("cond9", ncol(data)/10),
rep("cond10", ncol(data)/10)), row.names=colnames(data))

colnames(metadata) <- c("condition")

require(pheatmap)
out <- pheatmap(data, 
            show_rownames=F, cluster_cols=T, cluster_rows=T, scale="row",
            cex=1, clustering_distance_rows="euclidean", cex=1,
            clustering_distance_cols="euclidean", clustering_method="complete", border_color=FALSE,
            annotation_col=metadata,
            annotation_row=metadata_gene)

grid::grid.draw(out$gtable)

在此处输入图像描述

标签: rggplot2gridgridextra

解决方案


推荐阅读