web-dev-qa-db-ja.com

knitrを使用してpng画像を並べて挿入する

HTMLドキュメントを作成するときに、コンピューターからrstudioにPNGファイルを並べて挿入するにはどうすればよいですか?

以下はうまくいきます(プロット)

```{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)
  ```
26
Salvador

Markdownの構文を学ぶ必要があります(実際には、約5分必要です)。解決策にはRもまったく含まれていません。

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

ところで、絶対パスは避けた方がいいです。 (Rmdファイルに対する)相対パスを使用します。

20
Yihui Xie

必要な出力がMS Wordドキュメントである場合、この質問に対する適切な回答はまだありません(OPは特にHTML出力を要求しているようですが、私がここに来て解決策を探しているのは私だけではないと思いますMS Wordドキュメントでも動作します)。

thisthis に基づく1つの方法を次に示しますが、結果はあまり満足のいくものではありません。

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)
13
Ben

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"))
``` 
13
Marc Bataillou