【问题标题】:How to reduce space between ggplot and next text when using grid.arrange?使用grid.arrange时如何减少ggplot和下一个文本之间的空间?
【发布时间】:2018-07-31 14:06:33
【问题描述】:

考虑下面的 R 降价页面

```{r setup, include=FALSE}
require(ggplot2)
require(data.table)
require(gridExtra)
require(knitr)

knitr::opts_chunk$set(echo = TRUE)
```

```{r, include=FALSE}
df <- data.table(x1=rnorm(n = 100), x2=rnorm(100))
```

Here is a plot

```{r,echo=FALSE, out.width='\\textwidth'}
hist1 <- ggplot(df, aes(x=x1)) +
  geom_histogram()

hist2 <- ggplot(df, aes(x=x2)) +
  geom_histogram()

grid.arrange(hist1, hist2, ncol=2, heights=c(10,10))
```

Some more text....

当我用gridExtra 包的grid.arrange() 绘制两个直方图hist1hist2 时,我发现图太大,我想降低高度。

grid.arrange() 中的 heights 参数确实会降低高度,但会在绘图和下一个文本之间留下一点空白。
我怎样才能在没有空白的情况下降低高度?

【问题讨论】:

  • 能否包含 YAML 和输出图像?我猜想被编成 PDF,但这将有助于澄清这些细节。

标签: r r-markdown knitr


【解决方案1】:

在 rmarkdown 中,我们可以在块选项中设置图形大小。

```{r, echo=FALSE, out.width='\\textwidth', message=FALSE, fig.height=3, fig.width=6, fig.align="center"}
df <- data.table(x1=rnorm(100), x2=rnorm(100))
hist1 <- ggplot(df, aes(x=x1)) + geom_histogram()
hist2 <- ggplot(df, aes(x=x2)) + geom_histogram()
grid.arrange(hist1, hist2, ncol=2)
```

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

屈服

注意:查看其他块选项的摘要here

【讨论】: