1

我正在尝试使用森林图,并且我想包含一个冗长的脚注(3 行文本)。我在底部没有足够的空间,我认为这些par()选项没有做任何事情。这是 vingette 中给出的示例以及我尝试做脚注的尝试在此处输入图像描述

library(forestplot)
# Cochrane data from the 'rmeta'-package
cochrane_from_rmeta <- 
  structure(list(
    mean  = c(NA, NA, 0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, NA, 0.531), 
    lower = c(NA, NA, 0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, NA, 0.386),
    upper = c(NA, NA, 0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, NA, 0.731)),
    .Names = c("mean", "lower", "upper"), 
    row.names = c(NA, -11L), 
    class = "data.frame")

tabletext<-cbind(
  c("", "Study", "Auckland", "Block", 
    "Doran", "Gamsu", "Morrison", "Papageorgiou", 
    "Tauesch", NA, "Summary"),
  c("Deaths", "(steroid)", "36", "1", 
    "4", "14", "3", "1", 
    "8", NA, NA),
  c("Deaths", "(placebo)", "60", "5", 
    "11", "20", "7", "7", 
    "10", NA, NA),
  c("", "OR", "0.58", "0.16", 
    "0.25", "0.70", "0.35", "0.14", 
    "1.02", NA, "0.53"))
dev.new()
par(mar = c(4, 1, 1, 1))
forestplot(tabletext, 
           cochrane_from_rmeta,new_page = TRUE,
           is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
           clip=c(0.1,2.5), 
           xlog=TRUE, 
           col=fpColors(box="royalblue",line="darkblue", summary="royalblue"))
grid.text('* Adjusted for demographic & baseline variables,blur blur blur',
          x = unit(.43, 'npc'),
          y = unit(1, 'lines'))

关于如何创造更多空间的任何建议?

谢谢!

4

1 回答 1

2

我找到了一个解决方案,首先我虽然可以通过主题的 ggplot 选项来更改边距:

+ theme(plot.margin = margin(2, 2, 2, 2, "cm"))

但是无法访问中的绘图对象forestplot,因此我仔细查看了forestplot函数的选项,并且有一个mar以单位为参数的参数,以下解决方案适用于我:

forestplot(tabletext, 
           cochrane_from_rmeta,new_page = TRUE,
           is.summary=c(TRUE, TRUE, rep(FALSE,8), TRUE),
           clip=c(0.1, 2.5), 
           xlog=TRUE, 
           mar = unit(rep(10, times = 4), "mm"),
           col=fpColors(box="royalblue",
                        line="darkblue",
                        summary="royalblue"))

grid.text('* Adjusted for demographic & baseline variables,blur blur blur',
          x = unit(.43, 'npc'),
          y = unit(1, 'lines'))
于 2019-05-10T17:15:31.797 回答