如何在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
相关产品推荐
相关产品推荐

