【问题标题】:Controlling distance between two knitr side-by-side plots控制两个knitr并排图之间的距离
【发布时间】:2016-09-04 03:12:52
【问题描述】:

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

我不知道如何排列两个并排的图,如 knitr 图形手册第 2 页 (http://yihui.name/knitr/demo/graphics/) 中所述。我使用以下 MWE,输出如下。 我希望能够控制地块之间的距离 - 现在两个地块彼此太近了。 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)

```

【问题讨论】:

    标签: r layout plot knitr r-markdown


    【解决方案1】:

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

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

    ```{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)
    
    ```
    

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

    ```{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))
    
    ```
    

    【讨论】:

      猜你喜欢
      • 2016-09-04
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多