Вставлять бок о бок png изображения с помощью knitr
Как я могу вставлять бок о бок png файлы с моего компьютера в rstudio при создании html-документа?
Хорошо работает (графики)
```{r, echo=FALSE,fig.width=4, fig.show='hold'}
plot(cars)
plot(rnorm(100))
```
Но для изображений с пути отображается только последнее изображение
```{r fig.width=3, fig.show='hold'}
library(png)
img <- readPNG("C:/path to my picture/picture.png")
grid.raster(img)
img2 <- readPNG("C:/path to my picture/picture2.png")
grid.raster(img2)
```
Ответы
Ответ 1
Вы должны изучить синтаксис Markdown (действительно, вам нужно около пяти минут). Решение вообще не включает R:
 
Кстати, вам лучше избегать абсолютных путей. Используйте относительные пути (относительно вашего файла Rmd).
Ответ 2
Нам по-прежнему не хватает хорошего ответа на этот вопрос, если желаемый результат - это документ MS Word (я вижу, что OP специально запрашивал вывод HTML, но я предполагаю, что я не единственный, кто пришел сюда и ищет решение, которое работает и для документов MS Word).
Здесь один метод, основанный на этом и этом, но результат не очень удовлетворительный:
library(png)
library(grid)
library(gridExtra)
img1 <- rasterGrob(as.raster(readPNG("path/to/picture1.png")), interpolate = FALSE)
img2 <- rasterGrob(as.raster(readPNG("path/to/picture2.png")), interpolate = FALSE)
grid.arrange(img1, img2, ncol = 2)
Ответ 3
Вы можете использовать knitr::include_graphics()
как он принимает вектор путей в качестве аргумента.
Затем вы должны использовать fig.show='hold',fig.align='center'
, чтобы расположить их на одной линии и out.width="49%", out.height="20%"
для управления выводом размер.
'''{r, echo=FALSE,out.width="49%", out.height="20%",fig.cap="caption",fig.show='hold',fig.align='center'}
knitr::include_graphics(c("path/to/img1","path/to/img1"))