【问题标题】:Can't replicate MWE for side-by-side plots in knitr / R Markdown (HTML output)无法在 knitr / R Markdown(HTML 输出)中复制 MWE 并排绘制
【发布时间】:2016-10-17 01:45:52
【问题描述】:

我发现this MWE 用于 Knitr+Latex 中的并排绘图,我尝试使用 HTML 输出将其转换为 R Markdown。这是我尝试过的:

```{r, fig.show='hold', fig.width=3, fig.height=2.5, out.width=".49\\textwidth"}
par(mar = c(4, 4, .1, .1), cex.lab = .95, cex.axis = .9, mgp = c(2, .7, 0), tcl = -.3)
plot(cars)
boxplot(cars$dist,xlab='dist')
```

但它似乎根本没有生成任何东西。我在尝试复制 this other MWE 时也遇到了同样的问题。

我的设置有问题吗?我怎样才能让它与 HTML 而不仅仅是 PDF 一起使用?

编辑:使用mfrow 或以其他方式弄乱图形设备本身不是一种选择,因为我正在使用的绘图功能 (filled.contour) 不幸地接管了layout

【问题讨论】:

  • 当我运行你的例子时,我得到了两个图,但是这些图是一个在另一个之上。您忽略了在您的块参数中包含fig.show="hold",这将为您提供并排图。并排绘图的另一个选项是```{r, fig.width=6, fig.height=2.5} par(mfrow=c(1,2)) plot(cars) boxplot(cars$dist,xlab='dist')```
  • @eipi10 我的错,我的代码中有fig.show="hold"
  • 当我将您的(现已更新的代码)与fig.show = "hold" 一起使用时,这是一个完美的情节,两个情节并排为pdf。作为 HTML,我只看到代码,没有情节。
  • @J_F 我也忘了指定我想使用 HTML 输出 -_-
  • 在 RStudio 查看器中,您看不到任何绘图,但是当您使用浏览器打开输出文件夹中的 *.html 文件时,您将看到两个绘图,但不是并排的。

标签: r plot knitr r-markdown


【解决方案1】:

我发现了问题:我启用了fig.align='center'。显然,这与将两个图放在同一条线上的能力存在某种冲突。

【讨论】:

    【解决方案2】:

    out.width 指令把事情搞砸了。当您不在 LaTeX 输出模式下时,out.width="0.49\\textwidth" 毫无意义...(您指的另一个 MWE 也是 LaTeX 样式-我不知道您为使其适应 HTML 做了什么...)

    writeLines("
    ```{r, fig.show='hold', fig.width=3, fig.height=2.5}
        par(mar = c(4, 4, .1, .1), cex.lab = .95,
            cex.axis = .9, mgp = c(2, .7, 0), tcl = -.3)
        plot(cars)
        boxplot(cars$dist,xlab='dist')
    ```
    ",con="figtest.rmd")
    rmarkdown::render("figtest.rmd")
    browseURL("figtest.html")
    

    似乎工作正常。

    如果您需要更好地控制布局,您可能需要嵌入一些 HTML 指令——例如

    <table><tr><td>
    ## chunk with first figure code
    </td><td>
    ## chunk with second figure code
    </td></tr></table>
    

    【讨论】:

    • 谢谢。我想知道我的问题是否是 filled.contour 的一个怪癖,因为您的代码实际上工作正常。但是当我交换我的绘图功能时,它们总是在不同的行上。如果解决方案不是微不足道的,我会问一个单独的问题。
    猜你喜欢
    • 2015-08-28
    • 2019-11-01
    • 2015-03-08
    • 2022-08-19
    • 2018-02-19
    • 2015-03-06
    • 2013-07-31
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多