【问题标题】:R Markdown multiple plots in a single chunk only works intermittentlyR Markdown 单个块中的多个图只能间歇性地工作
【发布时间】:2019-04-11 13:53:40
【问题描述】:

R 代码块 #1 正确地绘制了“汽车”和“压力”。我希望 代码块 #2 表现相似并绘制两次“压力”。它没有。为什么?

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

Text

```{r code chunk 1, echo=FALSE, fig.width=6, fig.asp=0.618, out.width="50%", fig.align="default"}
plot(cars)
plot(pressure)
```

Text

```{r code chunk 2, echo=FALSE, fig.width=6, fig.asp=0.618, out.width="50%", fig.align="default"}
plot(pressure)
plot(pressure)
```

【问题讨论】:

    标签: r r-markdown knitr


    【解决方案1】:

    默认情况下,knitr 会丢弃同一代码块中的连续相同图。如果你想保留所有这些,你可以使用块选项fig.keep = 'all',例如,

    ```{r code chunk 2, fig.keep='all'}
    plot(pressure)
    plot(pressure)
    ```
    

    至于原因,参见(旧)手册https://yihui.name/knitr/demo/manual/(第3.2节)。简而言之,knitr 在对代码块中的每个表达式求值后捕获当前图形设备的快照(无论该表达式是否与绘图有关),并查看是否有任何变化快照。如果快照与以前的版本保持一致,则假定未生成新图。您可以通过fig.keep = 'all' 强制 knitr 保留所有图,即使它们彼此相同。

    【讨论】:

      猜你喜欢
      • 2014-07-16
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多