Лучше всего использовать .pdf здесь, так как формат предназначен для того, чтобы не изменять при масштабировании. Вы можете просто использовать for
l oop или, возможно, лучше Map
, чтобы, во-первых, создать свои графики, а во-вторых, чтобы создать код LaTeX "как есть", используя cat
. Я использую базовые графики здесь, я уверен, вы также можете сделать это с ggplot2
. Вокруг Map
мы обертываем invisible
, чтобы пропустить вывод консоли.
---
title: "Untitled"
output: pdf_document
header-includes:
- \usepackage{lipsum} % just used for sample loremipsum text
---
\lipsum[1]
```{r plots, echo=FALSE, results="asis"}
what <- rep("AirPassengers", 4) ## mimicking multiple plots
invisible(Map(function(w) {
pdf(file=paste0(w, ".pdf"))
plot(get(w))
dev.off()
}, what))
heights <- c(2, 4, 6, 8) ## define heights for each plot
invisible(Map(function(w, h) cat(
"
\\begin{figure}[ht]
\\includegraphics[height=", paste0(h, "cm"), "]{", paste0(w, ".pdf"), "}
\\caption{", w, "}\\label{fig:", w, "}
\\end{figure}
", sep=""), what, heights))
```
\lipsum[1]
Производит:
Если вы на самом деле вам нужны только разные высоты, вы можете указать размеры в первом вызове Map
, например, используя второй аргумент для ширины, и использовать постоянную высоту / ширину во втором.