R Markdown 单个块中的多个图只能间歇性工作
R Markdown multiple plots in a single chunk only works intermittently
R 代码块 #1 正确绘制了 'cars' 和 'pressure'。我希望 code chunk #2 的行为相似并绘制 'pressure' 两次。它没有。为什么?
---
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)
```
默认情况下,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 保留所有地块,即使它们彼此相同
R 代码块 #1 正确绘制了 'cars' 和 'pressure'。我希望 code chunk #2 的行为相似并绘制 'pressure' 两次。它没有。为什么?
---
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)
```
默认情况下,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'
.