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

如何在R的ComplexHeatmap中仅将标题中的k设为斜体?

实现ComplexHeatmap标题中部分文本斜体的方法

完全可以实现这个需求,你可以通过plotmath表达式或者grid包的textGrob来单独设置"k"的格式,以下是具体修改方案:

方法1:使用plotmath表达式(简洁版)

直接将标题设置为plotmath表达式,用italic()函数包裹需要斜体的部分,用~连接后续文本保证排版连续:

library(ComplexHeatmap)
Heatmap(KI2, 
  col=custom_palette,
  show_row_dend=F,
  show_column_dend=F,
  show_row_names=F,
  show_column_names=F,
  heatmap_legend_param = list(title = "CNV"),
  column_title = expression(italic(k)~"-mat"),
  column_title_side = "bottom",
  row_title = expression(italic(k)~"-mat"),
  row_title_gp = gpar(fontsize = 20),
  row_title_side = "left",
  column_title_gp = gpar(fontsize = 20)
)

方法2:使用grid::textGrob(灵活定制版)

如果需要更复杂的格式组合,可通过textGrob拼接不同样式的文本块,精准控制每个部分的格式:

library(ComplexHeatmap)
library(grid)

# 构建自定义标题:斜体k + 普通文本"-mat"
custom_title <- textGrob(
  label = c("k", "-mat"),
  x = unit(c(0, 0.15), "npc"),  # 调整位置确保文本连续无间隙
  gp = gpar(fontface = c("italic", "plain"), fontsize = 20)
)

Heatmap(KI2, 
  col=custom_palette,
  show_row_dend=F,
  show_column_dend=F,
  show_row_names=F,
  show_column_names=F,
  heatmap_legend_param = list(title = "CNV"),
  column_title = custom_title,
  column_title_side = "bottom",
  row_title = custom_title,
  row_title_side = "left"
)

注意事项

  • 方法1是最简便的实现方式,适合简单的局部格式调整;
  • 方法2适合需要多种格式混合的场景,需根据实际字体大小微调x参数保证排版对齐;
  • 原代码中row_title = "k-mat",,存在多余逗号,需删除避免运行报错。

内容的提问来源于stack exchange,提问作者Vinod Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:54