Używam pętli for do tworzenia wielu dużych liczb na wielu stronach w jednym kawałku z knitr i rmarkdown. Działa dobrze dla programów word i html, ale ma jeden problem z wyjściem w formacie PDF.Jak dodać wiele figur na wielu stronach w kawałku za pomocą knitr i RMarkdown?
Jest to minimalny przykład RMarkdown do odtworzenia mojego problemu.
---
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)
}
```
Wygenerowany plik pdf wygląda następująco. Dwie cyfry są drukowane na stronie.
Jeśli zmienię fig.height, dodać kilka sekcji w pliku RMD, dwie postacie nadal są drukowane na tej samej stronie z innym układzie.
---
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)
}
```
Dzięki za wszelkie sugestie, aby rozwiązać ten problem.
Używam RStudio 0.99.375. To są moje informacje o sesji.
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
Jeśli działka, z którą pracujesz, jest łączem z wieloma wątkami, możesz zamienić 'print (p)' na 'grid.draw (p)' i nadal będzie działać. Jeśli nie, wyrenderuje również wynik TableGrob. –