Forestplot R - 扩展图,编辑变量名

Forestplot R - expanding plot, edit a variable name

我准备了一个代码来可视化我的数据:

    library(forestplot)
test_data <- data.frame(coef=c(1.14, 0.31, 10.70),
                        low=c(1.01, 0.12, 1.14),
                        high=c(1.30, 0.83, 100.16),
                        boxsize=c(0.2, 0.2, 0.2))
row_names <- cbind(c("Variable", "Variable 1", "Variable 2", "So looooooong and nasty name of the variable"),
                   c("OR", test_data$coef), c("CI -95%",  test_data$low), c("CI +95%", test_data$high) )
test_data <- rbind(rep(NA, 4), test_data)
forestplot(labeltext = row_names,
           mean = test_data$coef, upper = test_data$high,
           lower = test_data$low,
           is.summary=c(TRUE, FALSE, FALSE, FALSE),
           boxsize = test_data$boxsize,
           zero = 1,
           xlog = TRUE,
           xlab = "OR (95% CI)",
           col = fpColors(lines="black", box="black"),
           title="My Happy Happy Title \n o happy happy title...\n",
           ci.vertices = TRUE,
           xticks = c(0.1, 1, 10, 100))

它给出了以下森林图:

我愿意:

1) 展开图并缩小左侧图细节的字体以更好地可视化

2) 编辑 "So looooooong and nasty name of the variable" 以将部分 "name..." 移动到行下方,例如: “ 又脏又脏 变量名 “ 但是,当我写为“/nSo.../n”时,它会从 "OR" 和 "CIs".

列中给出另一行数字

如何正确呢?

三种可能性(比你要求的多一种):

1) 使用 txt_gp.

更改行标签的文本

2) 通过向 unit 传递 colgap 网格调用,将列间距从默认的 6 毫米减少到该值的一半。完全理解 forestplot 的选项需要理解 grid 绘图系统。

3) 在loooong标签中添加一个"\n"。 (我很困惑你没有看到这种可能性,因为你的标题中已经有一个“\n”。)

row_names <- cbind(c("Variable", "Variable 1", "Variable 2", "So looooooong and \nnasty name of the variable"),
               c("OR", test_data$coef), c("CI -95%",  test_data$low), c("CI +95%", test_data$high) )

forestplot(labeltext = row_names,
           mean = test_data$coef, upper = test_data$high,
           lower = test_data$low,
           is.summary=c(TRUE, FALSE, FALSE, FALSE),
           boxsize = test_data$boxsize,
           zero = 1, colgap = unit(3, "mm"), txt_gp=fpTxtGp(label= gpar(cex = 0.7),
                                                             title = gpar(cex = 1) ),
           xlog = TRUE,
           xlab = "OR (95% CI)",
           col = fpColors(lines="black", box="black"),
           title="My Happy Happy Title \n o happy happy title...\n",
           ci.vertices = TRUE,
           xticks = c(0.1, 1, 10, 100))

如果我在传递给 'label' 的 gpar 调用中只使用了 0.7 的 cex,它也会影响标题的大小,所以我需要 "reset" 'cex' 的 'title' 回到 1.