R,如何更改为森林图 y 轴的间隔?

R, how to change to interval in the y axis of a forest plot?

我正在通过 forestplot package 在 R 中准备一个森林图。可能的值范围从 -1 到 +1,我希望它是我的 x 轴上的范围。但是,我的值范围从 0 到 1,因此 R 仅描述 x 轴上的那部分。

在此处查看图片:

如何让x轴的区间在-1到+1之间?我想在右边留下一个完整的空白 space 以显示那里没有任何价值。

这是我的代码:

library("forestplot")

cochrane_from_rmeta <- 
  structure(list(
    lower = c(NA, NA, 0.026, 0.043, 0.184, 0.333,  0.026),
    mean  = c(NA, NA, 0.502, 0.534, 0.548, 0.792,  0.600), 
    upper = c(NA, NA, 0.978, 0.949, 0.911, 0.936,  0.967)),
    .Names = c("mean", "lower", "upper"), 
    row.names = c(NA, -7L), 
    class = "data.frame")

tabletext<-cbind(
  c("", "aaa", "bbb", "ccc", 
    "ddd", "eee",
     "Summary"),
  c("", "#datasets", "1", "2", 
    "3", "4",
     NA))     

png(paste0("forestPlot_",exe_num,".png"))
forestplot(tabletext, 
           cochrane_from_rmeta, 
           new_page = TRUE,
           is.summary=c(TRUE,TRUE,rep(FALSE,4),TRUE),
           clip=c(-1,1), 
           xlog=FALSE, 
           col=fpColors(box="royalblue",line="darkblue", summary="royalblue"))

似乎没有直接的方法可以做到这一点,但是如果您在第一行中设置 -1 和 1 的下限和上限,同时将 mean 保留为 NA,它将修复 x 范围而不影响情节:

cochrane_from_rmeta <- 
  structure(list(
    lower = c(-1, NA, 0.043, 0.043, 0.184, 0.333,  0.026),
    mean  = c(NA, NA, 0.502, 0.534, 0.548, 0.792,  0.600), 
    upper = c(1, NA, 0.978, 0.949, 0.911, 0.936,  0.967)),
    .Names = c("mean", "lower", "upper"), 
    row.names = c(NA, -7L), 
    class = "data.frame")

tabletext<-cbind(
  c("", "aaa", "bbb", "ccc", 
    "ddd", "eee",
    "Summary"),
  c("", "#datasets", "1", "2", 
    "3", "4",
    NA))

forestplot(tabletext, 
           cochrane_from_rmeta, 
           new_page = TRUE,
           is.summary=c(FALSE,TRUE,rep(FALSE,4),TRUE),
           clip=c(-1,1), 
           xlog=FALSE, 
           mar = unit(c(50, 30, -30, 30), "pt"),
           col=fpColors(box="royalblue",line="darkblue", summary="royalblue"), 
           graphwidth = unit(0.7, "npc"))