1. 解决问题
在进行多图绘制的时候,用cowplot::plot_grid函数进行多图组合,结果在多图组合的时候,别的ggplot画图的对象没有任何问题,但是pheatmap的出现问题,并抛出如下警告信息:
p4<-cowplot::plot_grid(p1, p2, p3, ncol=1, labels=LETTERS[1:3])
Warning message:
In as_grob.default(plot) :
Cannot convert object of class pheatmap into a grob.
2. 解决方法
通过一系列的查询报错原因,终于找到了问题的原因,原来cowplot::plot_grid多图组合的话,必须得是ggplot对象,而pheatmap不是ggplot对象,因此才会出现此问题。并且找到了相应的解决方法解决方法:
library(pheatmap)
test <- matrix(rnorm(200), 20, 10)
mfs <- mfs_ma <- mfs_fe <- pheatmap(test)
cowplot::plot_grid(mfs$gtable, mfs_ma$gtable, mfs_fe$gtable,
ncol= 3, labels=LETTERS[1:3])
到此,pheatmap多图组合报错问题得到解决,后续如果需要不同的图组合,可以很方便的组合一起,
cowplot::plot_grid(p1, p2,p3$gtable,ncol= 3, labels=LETTERS[1:3])
#这里的p3为pheatmap画图的对象
参考链接
Put many heatmap images in one single slide
2021年1月4日