You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:12:00