Sto utilizzando un ciclo for per creare più figure grandi su più pagine in un blocco con knitr e rmarkdown. Funziona bene per gli output word e html, ma ha un problema nell'output in pdf.Come aggiungere più figure su più pagine in un blocco utilizzando knitr e RMarkdown?
Questo è un esempio di RMarkdown minimo per riprodurre il mio problema.
---
title: "Knitr test"
date: "6 April 2015"
output: pdf_document
---
```{r, echo=FALSE, fig.width=6.5,fig.height=10}
library(ggplot2)
for (i in seq(1, 4)){
p <- ggplot(cars, aes(speed, dist)) + geom_point()
print(p)
}
```
Il file pdf generato è simile a questo. Due figure sono stampate nella pagina.
Se cambio il fig.height, aggiungere una sezione pochi nel file di RMD, due figure sono ancora stampati nella stessa pagina con diversa disposizione.
---
title: "Knitr test"
output: pdf_document
date: "6 April 2015"
---
## Section A
Row B
```{r plot_phenotype, echo = FALSE, fig.height=8, fig.width=6.5}
library(ggplot2)
for (i in seq(1, 4))
{
p <- ggplot(cars, aes(speed, dist)) + geom_point()
print(p)
}
```
Grazie per qualsiasi suggerimento per risolvere questo problema.
Sto usando RStudio 0.99.375. Questa è la mia informazione sulla sessione.
sessionInfo()
R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rmarkdown_0.5.3.1 knitr_1.9.5
loaded via a namespace (and not attached):
[1] colorspace_1.2-5 digest_0.6.8 evaluate_0.5.5 formatR_1.0
[5] ggplot2_1.0.0 grid_3.1.3 gtable_0.1.2 htmltools_0.2.6
[9] MASS_7.3-34 munsell_0.4.2 plyr_1.8.1 proto_0.3-10
[13] Rcpp_0.11.5 reshape2_1.4.1 scales_0.2.4 stringr_0.6.2
[17] tcltk_3.1.3 tools_3.1.3 yaml_2.1.13
Se la trama su cui si sta lavorando è un gtable con più groites di trama, è possibile sostituire 'print (p)' con 'grid.draw (p)' e funzionerà ancora. Se non lo fai, renderà anche l'output di TableGrob. –