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

如何在R语言forestplot函数中设置加粗标签?

在forestplot中设置加粗标签的解决方案

要在forestplot中实现文本加粗,核心是利用gpar(fontface = "bold")结合forestplot的文本样式函数来指定格式,以下是针对你的代码的具体修改方案:

1. 表头加粗修改

在fp_add_header中,为每个表头文本添加fp_txt_gp来设置加粗样式:

fp_add_header(
  study = c("", fp_txt_gp("Sensitivity Analysis", gp = gpar(fontface = "bold"))),
  RCT = c("", fp_txt_gp("RCT", gp = gpar(fontface = "bold"))),
  n = c("", fp_txt_gp("n", gp = gpar(fontface = "bold"))),
  p = c("", fp_txt_gp("p", gp = gpar(fontface = "bold"))),
  RR = c("", fp_txt_gp("RR (95% CI)", gp = gpar(fontface = "bold")))
)

2. 特定行文本加粗(比如"All Studies"行)

如果需要把最后一行的"All Studies"及对应列文本加粗,可使用fp_set_label_gp指定行样式:

fp_set_label_gp(
  label = list(gpar(fontface = c(rep("plain", 3), "bold")))
)

这里rep("plain", 3)表示前3行用普通字体,第4行("All Studies"行)用加粗字体。

修改后的完整代码

library(forestplot)
library(grid) # 需加载grid包使用gpar()

Fatigue_all_grade_sensitivity_analysis <- tibble::tibble(
  mean  = c(1.41, 1.52, 2.92, 1.75),
  lower = c(1.30, 1.44, 2.59, 1.50),
  upper = c(1.52, 1.60, 3.30, 2.04),
  study = c("Prior or concurrent docetaxecel use", "Single agent", "Double agent", "All Studies"),
  n = c("8117", "15381", "1945", "17326"),
  RCT = c("8", "16", "1", "18"),
  p = c("<0.01", "<0.01", "<0.01", "<0.01"),
  RR = c("1.41 (1.30-1.52)", "1.52 (1.44-1.60)", "2.92 (2.59-3.30)", "1.75 (1.50-2.04)")
)

plot <- Fatigue_all_grade_sensitivity_analysis |>
  forestplot(
    labeltext = c(study, RCT, n,  RR, p), 
    clip = c(0.5, 3.5), 
    xlog = FALSE, 
    lwd.zero=0.5, 
    vertices = FALSE, 
    boxsize = 0.08, 
    title= "All Grade Fatigue Events"
  ) |>
  fp_set_style(box = "darkgreen", line = "black") |> 
  fp_add_header(
    study = c("", fp_txt_gp("Sensitivity Analysis", gp = gpar(fontface = "bold"))),
    RCT = c("", fp_txt_gp("RCT", gp = gpar(fontface = "bold"))),
    n = c("", fp_txt_gp("n", gp = gpar(fontface = "bold"))),
    p = c("", fp_txt_gp("p", gp = gpar(fontface = "bold"))),
    RR = c("", fp_txt_gp("RR (95% CI)", gp = gpar(fontface = "bold")))
  ) |> 
  fp_set_label_gp(
    label = list(gpar(fontface = c(rep("plain", 3), "bold")))
  ) |>
  fp_decorate_graph(
    graph.pos = 4, 
    right_bottom_txt = fp_txt_gp("Favours agent", gp = gpar(cex = .9)),
    left_bottom_txt = fp_txt_gp("Favours Control", gp = gpar(cex = .9))
  )

print(plot)

关键说明

  • 必须加载grid包才能使用gpar()函数设置字体样式;
  • fp_txt_gp用于单独设置单个文本的样式,适合表头;
  • fp_set_label_gp可批量设置行的字体样式,fontface向量长度需与数据行数一致,对应每行的字体样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:27:49