r - 控制两个 knitr 并排图之间的距离

标签 r layout plot knitr r-markdown

[与Control alignment of two side-by-side plots in knitr相关]

我不知道如何按照 knitr 图形手册第 2 页 (http://yihui.name/knitr/demo/graphics/) 中的说明排列两个并排的图。我使用以下 MWE,输出如下。 我希望能够控制地 block 之间的距离 - 现在这两个地 block 彼此靠得太近了。 pdf 是在 RStudio 中生成的(Knit to PDF)。

我试图篡改例如 par(mar = c(rep(5,4))),但没有成功。

---
title: "Untitled"
output: pdf_document
---

## R Markdown

```{r,echo=FALSE,out.width='.49\\linewidth', fig.width=3, fig.height=3, fig.show='hold',fig.align='center'}

barplot(1:4)
barplot(4:7)

```

enter image description here

最佳答案

您可以使用layout 在两个图之间添加一个可调整的空间。创建一个三区布局并使中间区空白。调整 widths 参数以分配三个图之间的相对空间量。

在下面的示例中,我还必须调整绘图边距设置 (par(mar=c(4,2,3,0))) 以避免“图形边距太大”错误,我将 fig.width 更改为 4 以获得更好的绘图纵横比。您可能需要使用 block 中的图形边距和图形参数来获得所需的绘图尺寸。

```{r,echo=FALSE,out.width='.49\\linewidth', fig.width=4, fig.height=3, fig.align='center'}

par(mar=c(4,2,3,0))
layout(matrix(c(1,2,3),nrow=1), widths=c(0.45,0.1,0.45))
barplot(1:4)
plot.new()
barplot(4:7)

```

enter image description here

如果你碰巧想使用网格图形,你可以使用类似的方法:

```{r,echo=FALSE,out.width='.49\\linewidth', fig.width=3, fig.height=3, fig.align='center'}

library(ggplot2)
library(gridExtra)
library(grid)

p1=ggplot(mtcars, aes(wt, mpg)) + geom_point()

grid.arrange(p1, nullGrob(), p1, widths=c(0.45,0.1,0.45))

```

关于r - 控制两个 knitr 并排图之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116542/

相关文章:

matlab - 在 Matlab 中绘制方形曲面

android - Flutter - 选项卡上的动态高度

html - 三列布局 - 无 float 对齐

android - 为什么我总是遇到 R 没有解决的问题?

R glmnet : segmentation fault when using multinomial and pmax

python - 在python中绘制具有不同背景颜色的曲线

R:来自 ggmap 的 get_map()/get_googlemap() 错误

r - 将十六进制字符向量转换为 R 中的原始向量

r - r中的模糊字符串匹配

r - Shiny R 中模型训练的进度条