Вставлять бок о бок 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:

![](path/to/picture.png) ![](path/to/picture2.png)

Кстати, вам лучше избегать абсолютных путей. Используйте относительные пути (относительно вашего файла 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"))