170

.Rmdファイルに含めたいローカル画像があり、それknitをでHTMLスライドに変換しますPandocこの投稿によると、これはローカル画像を挿入します:
![Image Title](path/to/your/image)

このコードを変更して画像サイズも設定する方法はありますか?

4

8 に答える 8

211

質問は古いですが、それでも多くの注目を集めています。既存の回答は古くなっているため、ここではより最新のソリューションを示します。

ローカル画像のサイズ変更

knitr1.12の時点で、関数がありますinclude_graphics。から?include_graphics(強調鉱山):

この関数を使用する主な利点は、knitrサポートするすべてのドキュメント形式で機能するという意味で移植可能であるため、外部を埋め込むためにLaTeXやMarkdown構文などを使用する必要があるかどうかを考える必要がないことです。画像。通常のRプロットで機能するグラフィックス出力に関連するチャンクオプションは、やなどのこれらの画像でも機能しout.widthますout.height

例:

```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```

利点:

  • agastudyの答え:外部ライブラリや画像の再ラスタライズは必要ありません。
  • Shruti Kapoorの答えについて:HTMLを手動で作成する必要はありません。その上、画像はファイルの自己完結型バージョンに含まれています。

生成された画像を含む

チャンク(ただし含まれていない)で生成されるプロットへのパスを作成するには、チャンクオプション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")))
```

図形パスの一般的なパターンはです[fig.path]/[chunklabel]-[i].[ext]。ここchunklabelで、はプロットが生成されたチャンクのラベル、iはプロットインデックス(このチャンク内)、extはファイル拡張子(デフォルトpngではRMarkdownドキュメント)です。

于 2016-03-17T10:34:57.590 に答える
138

更新されていない答え:knitr 1.17あなたは単に使用することができます

![Image Title](path/to/your/image){width=250px}

@jsbからのコメントに従って編集

これはスペースなしでのみ機能することに注意してください。たとえば、{width=250px}ではなく{width=250px}です。

于 2017-08-29T19:19:02.907 に答える
108

たとえば、パッケージを使用して画像を読み取り、パッケージからpng使用して通常のプロットのようにプロットすることもできます。grid.rastergrid

```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
 grid.raster(img)
```

この方法を使用すると、画像のサイズを完全に制御できます。

于 2013-03-25T22:51:16.293 に答える
38

画像を再保存せずにファイルを自己完結型に保ついくつかのオプションを次に示します。

div画像をタグでラップします

<div style="width:300px; height:200px">
![Image](path/to/image)
</div>

スタイルシートを使用する

test.Rmd

---
title: test
output: html_document
css: test.css
---

## Page with an image {#myImagePage}

![Image](path/to/image)

test.css

#myImagePage img {
  width: 400px;
  height: 200px;
}

複数の画像がある場合は、この2番目のオプションにn番目の子の疑似セレクターを使用する必要がある場合があります。

于 2015-06-27T07:35:56.927 に答える
21

HTMLに変換する場合は、次のHTML構文を使用して画像のサイズを設定できます。

  <img src="path/to/image" height="400px" width="300px" />

またはあなたが与えたいと思うどんな高さと幅でも。

于 2013-03-28T17:54:04.690 に答える
9

今日同じ問題がありknitr 1.16、PDFに編むときに別のオプションが見つかりました(これには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を参照してください。

于 2017-12-08T08:29:27.347 に答える
7

私のために働いた別のオプションは、次のようなdpiオプションで遊んでいますknitr::include_graphics()

```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```

...確かに(数学を行わない限り)、チャンクでディメンションを定義するのと比較して試行錯誤ですが、誰かを助けるかもしれません。

于 2018-04-20T21:28:42.710 に答える
4

knitr :: include_graphicsソリューションは、図のサイズ変更にはうまく機能しましたが、それを使用してサイズ変更された図を並べて作成する方法を理解できませんでした。この投稿はそうするのに役立ちました。

于 2016-10-16T03:46:34.700 に答える