R语言ggtree绘制热图时自定义x轴取值范围的方法咨询
解决方案
gheatmap() 调用时会自动重设x轴范围适配热图和树的总宽度,会覆盖你此前设置的x轴参数,你只需要在热图的配置代码最后,重新指定x轴的范围与标签规则即可实现需求:
h1 <- gheatmap(p1, landuse, offset = 15, width = 0.05, font.size = 3, colnames_position = "top", colnames_angle = 0, colnames_offset_y = 0, hjust = 0) + scale_fill_manual(breaks = c("Forest", "Jungle rubber", "Rubber", "Oil palm"), values = c("#458B00", "#76EE00", "#1874CD", "#00BFFF"), name = "Land use system", na.value = "white") + # 新增以下x轴配置:revts翻转后实际坐标范围为-80~0,用abs转换标签显示为0~80 scale_x_continuous(limits = c(-80, 0), labels = abs)
注意事项
- 若设置后出现树或热图边缘被截断的情况,可给
limits留少量余量,比如改为c(-82, 2),也可补充expand参数控制边缘留白:scale_x_continuous(limits = c(-80, 0), labels = abs, expand = c(0.01, 0)) - 不要使用
xlim()设置范围,该函数会直接覆盖已有的scale_x_continuous配置,导致你之前设置的绝对值标签失效。
原运行结果图

内容的提问来源于stack exchange,提问作者Anh
相关产品推荐
相关产品推荐

