J'ai une image locale que je voudrais inclure dans un fichier .Rmd
que je vais ensuite convertir knit
et convertir en diapositives HTML avec Pandoc
. Per this post , ceci insérera l'image locale:![Image Title](path/to/your/image)
Est-il possible de modifier ce code pour définir également la taille de l'image?
Vous pouvez également lire l'image en utilisant le package png
par exemple et la représenter comme un tracé standard en utilisant grid.raster
à partir du package grid
.
```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
grid.raster(img)
```
Avec cette méthode, vous avez le plein contrôle de la taille de votre image.
La question est ancienne, mais reçoit toujours beaucoup d'attention. Les réponses existantes étant obsolètes, voici une solution plus moderne:
A partir de knitr
1.12 , il existe la fonction include_graphics
. De ?include_graphics
(c'est moi qui souligne):
Le principal avantage de l'utilisation de cette fonction est qu'elle est portable dans la mesure où elle fonctionne pour tous les formats de document pris en charge par
knitr
. Vous n'avez donc pas besoin de penser si vous devez utiliser, par exemple, la syntaxe LaTeX ou Markdown. , pour intégrer une image externe. Les options de bloc associées aux sorties graphiques qui fonctionnent pour les tracés R normaux fonctionnent également pour ces images, telles queout.width
etout.height
.
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
Avantages:
Pour composer le chemin d'accès à un tracé généré dans un bloc (mais non inclus), les options de bloc opts_current$get("fig.path")
(chemin du répertoire de la figure) ainsi que opts_current$get("label")
(étiquette du morceau en cours) peut être utile. L'exemple suivant utilise fig.path
pour inclure la deuxième des deux images générées (mais non affichées) dans le premier bloc:
```{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")))
```
Le modèle général des chemins de figure est [fig.path]/[chunklabel]-[i].[ext]
, où chunklabel
est l’étiquette du bloc où le tracé a été généré, i
est l’indice du tracé (dans ce bloc) et ext
est l'extension de fichier (par défaut png
dans les documents RMarkdown).
Réponse mise à jour: dans knitr 1.17
, vous pouvez simplement utiliser
![Image Title](path/to/your/image){width=250px}
Voici quelques options qui permettent de garder le fichier autonome sans retaster l’image:
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;
}
Si vous avez plusieurs images, vous devrez peut-être utiliser le pseudo-sélecteur pour le deuxième enfant pour cette deuxième option.
Si vous convertissez au format HTML, vous pouvez définir la taille de l'image à l'aide de la syntaxe HTML à l'aide de:
<img src="path/to/image" height="400px" width="300px" />
ou quelle que soit la hauteur et la largeur que vous souhaitez donner.
J'ai eu le même problème aujourd'hui et j'ai trouvé une autre option avec knitr 1.16
lors du tricotage pour PDF (ce qui nécessite l'installation de pandoc):
![Image Title](path/to/your/image){width=70%}
Cette méthode peut nécessiter que vous fassiez quelques essais et erreurs pour trouver la taille qui vous convient. C’est particulièrement pratique car cela facilite la juxtaposition de deux images. Par exemple:
![Image 1](path/to/image1){width=70%}![Image 2](path/to/image2){width=30%}
Vous pouvez faire preuve de créativité et empiler deux ou trois côte à côte et les dimensionner à votre guise. Voir https://rpubs.com/RatherBit/90926 pour plus d'idées et d'exemples.
La solution knitr :: include_graphics fonctionnait bien pour redimensionner les chiffres, mais je n’étais pas en mesure de l’utiliser pour produire des chiffres redimensionnés côte à côte. J'ai trouvé ce post utile pour le faire.
Une autre option qui a fonctionné pour moi est de jouer avec l'option dpi de knitr::include_graphics()
comme ceci:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
... ce qui est sûr (sauf si vous faites le calcul) est un essai et une erreur par rapport à la définition des dimensions dans le bloc, mais peut-être que cela aidera quelqu'un.