2017-10-09 3 views
4

En raison d'un autre javascript que j'essaie de mettre en œuvre, j'aimerais pouvoir facilement distinguer et localiser les images dans le fichier RMarkdown compilé. Les images produites de manière standard avec ces morceaux de codeExiste-t-il un moyen d'ajouter automatiquement des identifiants aux images dans R Markdown?

```{r} 
plot1 <- ggplot(data = mtcars, aes(x = wt, y = mpg, group = am, color = am)) + 
    geom_point(size = 3) 

plot1 
``` 

résultat en HTML comme

<img src = "data:image/png..." width = 1000/> 

Je voudrais pouvoir ajouter automatiquement l'identifiant unique à chaque image afin que tous les résultats d'appel quelque chose comme

<img src = "data:image/png..." id = "plot1" width = 1000/> 

Je pourrais probablement écrire cela dans JS, mais je me demande s'il y a un moyen de le faire avec quelques options de RMarkdown.

Répondre

5

Vous pouvez créer un crochet d'option de morceau comme celui-ci:

knitr::opts_hooks$set(out.extra = function(options) { 
    options$out.extra <- paste0(ifelse(!is.logical(options$out.extra), options$out.extra, "")," id='", options$label, "'") 
    options 
}) 

Maintenant, si out.extra est soit T ou non logique, un identifiant égal à l'étiquette de morceau sera ajouté. Dans le cas où ce n'est pas logique mais plutôt de type caractère, sa valeur sera insérée avant l'attribut id. Considérons l'exemple suivant où nous ajoutons une bordure à l'intrigue. L'identifiant est également défini!

Exemple complet:

--- 
title: "Out.Extra" 
author: "Martin Schmelzer" 
date: "10/9/2017" 
output: html_document 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = FALSE) 

knitr::opts_hooks$set(out.extra = function(options) { 
    options$out.extra <- paste0(ifelse(!is.logical(options$out.extra), options$out.extra, "")," id='", options$label, "'") 
    options 
}) 
``` 

## Slide with Plot 

```{r pressure, out.extra = 'style="border: red 3px solid;"'} 
plot(pressure) 
``` 

enter image description here

Sinon, jetez un oeil à l'ensemble kfigr.

+0

Merci @Yihui! –