Rmarkdown在图形中包含无关文本

Rmarkdown在图形中包含无关文本,r,ggplot2,r-markdown,R,Ggplot2,R Markdown,我正在使用ggplot2和grid.arrange打印rmarkdown文档中的图形,以绘制垂直排列的线条图和条形图。图表显示得很好,但在生成的pdf文档中,此无关文本显示在图表下方: 表格grob(3 x 1)“排列”:3个grob z单元格名称grob 1(2-2,1-1) 排列表格[layout]2(3-3,1-1)排列表格[layout]3 (1-1,1-1)排列文本[GRID.text.6189] 生成图形的代码位于如下函数中: ggnorm <- ggplotGrob(raw.

我正在使用ggplot2和grid.arrange打印rmarkdown文档中的图形,以绘制垂直排列的线条图和条形图。图表显示得很好,但在生成的pdf文档中,此无关文本显示在图表下方:

表格grob(3 x 1)“排列”:3个grob z单元格名称grob 1(2-2,1-1) 排列表格[layout]2(3-3,1-1)排列表格[layout]3 (1-1,1-1)排列文本[GRID.text.6189]

生成图形的代码位于如下函数中:

ggnorm <- ggplotGrob(raw.gr)
ggvol <- ggplotGrob(vol.gr)
maxWidth = grid::unit.pmax(ggnorm$widths[2:5], ggvol$widths[2:5])
ggnorm$widths[2:5] <- as.list(maxWidth)
ggvol$widths[2:5] <- as.list(maxWidth)

combo.plot <- grid.arrange(ggnorm, ggvol, ncol=1, top=the.title)

return(combo.plot)
```{r overall, echo=FALSE, results="asis", warning=FALSE, message=FALSE}
overall.plot <- ComboPlot(overall.raw.scores, my.aes, paste("EPI", var.list[i], "through", yrq.list[length(yrq.list)]))

cat("  \n###  \n")

print(overall.plot)

cat("  \n###  \n")
然后调用函数,结果如下所示:

ggnorm <- ggplotGrob(raw.gr)
ggvol <- ggplotGrob(vol.gr)
maxWidth = grid::unit.pmax(ggnorm$widths[2:5], ggvol$widths[2:5])
ggnorm$widths[2:5] <- as.list(maxWidth)
ggvol$widths[2:5] <- as.list(maxWidth)

combo.plot <- grid.arrange(ggnorm, ggvol, ncol=1, top=the.title)

return(combo.plot)
```{r overall, echo=FALSE, results="asis", warning=FALSE, message=FALSE}
overall.plot <- ComboPlot(overall.raw.scores, my.aes, paste("EPI", var.list[i], "through", yrq.list[length(yrq.list)]))

cat("  \n###  \n")

print(overall.plot)

cat("  \n###  \n")

total.plot你能做一个可复制的例子吗?至少要隔离生成该消息的代码行并共享它?看起来您可能在
网格中显式地
print()
?这对于
knitr
来说应该是不必要的。试着去掉
打印的
。嘿,谢谢你,Gregor!这就解决了问题。不知道为什么。打印这些行是
gtable
打印方法的一部分。您也可以在控制台中进行测试,定义一些绘图
p
,然后尝试
grid.arrange(p)
print(grid.arrange(p))