嗨谢谢你的阅读和潜在的帮助!
我尝试使用以下代码注解使用ggplot生成的相关热图的x轴和y轴:
# Gen ggplot
ggplot(cor.df, aes(x, y, fill = correlation)) +
geom_tile(#color = "black") + theme_bw() + theme(axis.text.x = element_text(angle=70,vjust = 1, hjust=1)) + scale_fill_gradient2(low = "dodgerblue4", high = "red4", mid = "white",
midpoint = 0.5, limit = c(0,1), space = "Lab",
name="Pearson\nCorrelation")
Heatmap
然而,X轴和y轴是具有各种元数据的细胞,诸如起源、疾病、细胞类型等(为了简洁起见,说存在这3种元数据类型)。
上面的cor.df是一个数据框架:
# Example dat:
x y correlation
1 cell1_disease1_origin1 cell1_disease1_origin1 0.5
2 cell2_disease1_origin1 cell2_disease1_origin1 0.5
3 cell3_disease1_origin2 cell3_disease1_origin2 0.5
4 cell4_disease2_origin2 cell4_disease2_origin2 0.5
5 cell5_disease2_origin3 cell5_disease2_origin3 0.5
我们的目标是向ggplot对象添加一些编码,以便可以在x轴和y轴上添加注解条,例如在y轴上观察到的内容:
example heatmap
或者像这里所示的那样:
heatmap with annotations on x and y axis
但是,我希望3种类型的元数据有3个相互堆叠的注解标签,而不是只有一个注解。我知道元数据可以被添加到cor.df中,然后元数据和绘图数据之间的链接可以被用于A。创建热图,然后在y轴和x轴上B注解条层?
我提前道歉,如果这是不是reprex足够的…随时摧毁我,如果它不是…谢谢你的帮助!
P.S不想使用complexheatmap或heatmap,我想学习使用原生ggplot动词的解决方案,因为这是诚实地学习和实现其他想法的最佳方式,而不是永远导航包(毫无疑问,这是有用的)。
万分感谢!!!
已经试过了facet_wrap()
和annotation
,但不起作用。
1条答案
按热度按时间wfsdck301#
包{cowplot}和{patchwork}值得一试。为了快速修复,您还可以滚动自己的辅助对象几何体:
一次性几何形状:
在ggplot中使用: