Voglio creare una singola figura in R con due grafici in un file markdown con knitr
. Normalmente, questo è facile da fare con layout(t(1:2))
o par(mfrow=c(1,2))
. Posso farlo con knitr
, o farà sempre due figure separate?Uso del layout con knitr
Ecco un esempio di lavoro minimo che crea un file chiamato ./junk.Rmd
e ./junk.md
nella vostra directory di lavoro insieme a due file ./figure/junkislands1.png
(che comprende solo il primo trama) e ./figure/junkislands2.png
(che include entrambe le trame che voglio).
require(knitr)
temp <- "```{r junkislands, fig.width=8, fig.height=5}
layout(t(1:2))
pie(islands)
barplot(islands)
```"
cat(temp, file="junk.Rmd")
knit("junk.Rmd", "junk.md")
Il problema non è tanto che esso crea due file .png, ma piuttosto che il file Markdown junk.md
include entrambi.
Quando faccio questo markdown in html, include entrambi i file .png quando voglio solo quello con entrambe le figure tracciate.
Ecco il file junk.md
che viene generato da knitr:
```r
par(mfrow = c(1, 2))
pie(islands)
```
![plot of chunk junkislands](figure/junkislands1.png)
```r
barplot(islands)
```
![plot of chunk junkislands](figure/junkislands2.png)
a rigor di termini, si tratta di un bug di 'knitr' (https://github.com/yihui/knitr/issues/292); Proverò a ripararlo più tardi; grazie –
Ho [riparato] (https://github.com/yihui/knitr/commit/3508ddb86f0068c17570b3c71dc1e79414041627) questo bug nella versione di sviluppo: https://github.com/yihui/knitr#readme Puoi certamente usare 'fig .keep = 'last'', ma non sarà più necessario. –