.Rmd
ファイルに含めるローカルイメージがあり、そのファイルをknit
に変換して、Pandoc
でHTMLスライドに変換します。 この投稿 ごとに、これはローカル画像を挿入します:![Image Title](path/to/your/image)
このコードを変更して画像サイズも設定する方法はありますか?
たとえば、png
パッケージを使用して画像を読み取り、grid
パッケージのgrid.raster
を使用して通常のプロットのようにプロットすることもできます。
```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
grid.raster(img)
```
この方法を使用すると、画像のサイズを完全に制御できます。
質問は古いですが、まだ多くの注目を集めています。既存の回答は古くなっているため、ここに最新のソリューションを示します。
knitr
1.12 の時点で、関数include_graphics
があります。 ?include_graphics
(エンファシス鉱山)から:
この関数を使用する主な利点は、
knitr
がサポートするすべてのドキュメント形式で機能するという意味で移植性があるため、たとえばLaTeXまたはMarkdown構文を使用する必要があるかどうかを考える必要がないことです。 、外部画像を埋め込みます。out.width
やout.height
など、通常のRプロットで機能するグラフィック出力に関連するチャンクオプションも機能します。
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
利点:
チャンクで生成(ただし含まれない)のプロットへのパスを作成するには、opts_current$get("fig.path")
(figureディレクトリへのパス)とopts_current$get("label")
(ラベル現在のチャンクの)が役立つ場合があります。次の例では、fig.path
を使用して、最初のチャンクに生成された(表示されていない)2つのイメージの2番目を含めます。
```{r generate_figures, fig.show = "hide"}
library(knitr)
plot(1:10, col = "green")
plot(1:10, col = "red")
```
```{r}
include_graphics(sprintf("%sgenerate_figures-2.png", opts_current$get("fig.path")))
```
Figureパスの一般的なパターンは[fig.path]/[chunklabel]-[i].[ext]
です。ここで、chunklabel
はプロットが生成されたチャンクのラベル、i
はプロットインデックス(このチャンク内)およびext
はファイル拡張子です(デフォルトでは、RMarkdownドキュメントのpng
)。
更新されていない答え:knitr 1.17
では、単に使用できます
![Image Title](path/to/your/image){width=250px}
以下に、イメージを再作成せずにファイルを自己完結させておくいくつかのオプションを示します。
div
タグで囲む<div style="width:300px; height:200px">
![Image](path/to/image)
</div>
---
title: test
output: html_document
css: test.css
---
## Page with an image {#myImagePage}
![Image](path/to/image)
#myImagePage img {
width: 400px;
height: 200px;
}
複数の画像がある場合、この2番目のオプションにnth-child擬似セレクターを使用する必要があるかもしれません。
HTMLに変換する場合、次を使用してHTML構文を使用して画像のサイズを設定できます。
<img src="path/to/image" height="400px" width="300px" />
または任意の高さと幅を指定します。
今日同じ問題があり、PDFに編み込むときにknitr 1.16
で別のオプションを見つけました(これにはpandocがインストールされている必要があります)。
![Image Title](path/to/your/image){width=70%}
この方法では、適切なサイズを見つけるために試行錯誤が必要になる場合があります。特に便利なのは、2つのイメージを並べて配置することをよりきれいなプロセスにするためです。例えば:
![Image 1](path/to/image1){width=70%}![Image 2](path/to/image2){width=30%}
創造性を発揮し、これらのいくつかを並べてスタックし、必要に応じてサイズを調整できます。 https://rpubs.com/RatherBit/90926 をご覧ください。
Knitr :: include_graphicsソリューションは、図のサイズ変更にうまく機能しましたが、サイドバイサイドのサイズ変更された図を生成するためにそれを使用する方法を見つけることができませんでした。 この投稿 はそうするのに役立ちました。
私のために働いた別のオプションは、次のようにknitr::include_graphics()
のdpiオプションで遊ぶことです:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
...確かに(数学を行わない限り)チャンク内の次元を定義することと比較して試行錯誤ですが、おそらくそれは誰かを助けるでしょう。