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)
```
答案 0 :(得分:2)
默认情况下,编织器会丢弃同一代码块中的连续相同图。如果要保留所有这些,则可以使用块选项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'
强制编织保留所有图,即使它们彼此相同。