¿Cómo establecer el tamaño de la imagen local usando knitr para rebajar?

Tengo una imagen local que me gustaría incluir en un archivo .Rmd que luego voy a knit y convertir a diapositivas HTML con Pandoc . Según esta publicación , esto insertará la imagen local:
![Image Title](path/to/your/image)

¿Hay alguna manera de modificar este código para establecer también el tamaño de la imagen?

También puede leer la imagen usando el paquete png , por ejemplo, y grid.raster como un gráfico normal usando grid.raster del paquete de grid .

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

Con este método, usted tiene control total del tamaño de su imagen.

La pregunta es antigua, pero aún recibe mucha atención. Como las respuestas existentes están desactualizadas, aquí hay una solución más actualizada:

Cambiar el tamaño de las imágenes locales

A partir de knitr 1.12 , está la función include_graphics . De ?include_graphics (énfasis mío):

La principal ventaja de usar esta función es que es portátil en el sentido de que funciona para todos los formatos de documentos que admite knitr , por lo que no necesita pensar si debe usar, por ejemplo, la syntax LaTeX o Markdown, para insertar una imagen externa. Las opciones de fragmentos relacionadas con la salida de gráficos que funcionan para diagtwigs R normales también funcionan para estas imágenes, como out.width y out.height .

Ejemplo:

 ```{r, out.width = "400px"} knitr::include_graphics("https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image.png") ``` 

Ventajas:

  • Sobre la respuesta de agastudy : no hay necesidad de bibliotecas externas o para regrabar la imagen.
  • Sobre la respuesta de Shruti Kapoor : no es necesario escribir HTML manualmente. Además, la imagen está incluida en la versión autónoma del archivo.

Incluyendo imágenes generadas

Para componer la ruta a un gráfico que se genera en un fragmento (pero no incluido), las opciones de fragmento opts_current$get("fig.path") (ruta al directorio de figuras) así como opts_current$get("label") ( etiqueta del fragmento actual) puede ser útil. El siguiente ejemplo usa fig.path para incluir la segunda de dos imágenes que se generaron (pero no se muestran) en el primer fragmento:

 ```{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"))) ``` 

El patrón general de las rutas de figuras es [fig.path]/[chunklabel]-[i].[ext] chunklabel [fig.path]/[chunklabel]-[i].[ext] , donde chunklabel es la etiqueta del fragmento donde se ha generado la gráfica, i es el índice de la gráfica (dentro de este fragmento) y ext es la extensión de archivo (por defecto png en los documentos de RMarkdown).

Respuesta actualizada: en knitr 1.14 puedes simplemente usar

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

Aquí hay algunas opciones que mantienen el archivo independiente sin volver a registrar la imagen:

Envuelva la imagen en tags div

 
![Image](https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image)

Usa una hoja de estilo

test.Rmd

 --- title: test output: html_document css: test.css --- ## Page with an image {#myImagePage} ![Image](https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image) 

test.css

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

Si tiene más de una imagen, es posible que necesite usar el pseudo-selector n-child para esta segunda opción.

Si está convirtiendo a HTML, puede establecer el tamaño de la imagen usando la syntax HTML usando:

   

o cualquier altura y ancho que quieras dar.

La solución knitr :: include_graphics funcionó bien para cambiar el tamaño de las figuras, pero no pude averiguar cómo usarla para producir figuras redimensionadas una al lado de la otra. Encontré esta publicación útil para hacerlo.

Tuve el mismo problema hoy y encontré otra opción con knitr 1.16 al tejer en PDF (que requiere que tenga instalado Pandoc):

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

Este método puede requerir que hagas un poco de prueba y error para encontrar el tamaño que funcione para ti. Es especialmente conveniente porque hace que poner dos imágenes una al lado de la otra sea un proceso más bonito. Por ejemplo:

![Image 1](https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image1){width=70%}![Image 2](https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image2){width=30%}

Puede ser creativo y astackr un par de estos al lado del otro y dimensionarlos como mejor le parezca. Consulte https://rpubs.com/RatherBit/90926 para obtener más ideas y ejemplos.

Otra opción que funcionó para mí es jugar con la opción dpi de knitr::include_graphics() como esta:

 ```{r} knitr::include_graphics("https://stackoverflow.com/questions/15625990/how-to-set-size-for-local-image-using-knitr-for-markdown/path/to/image.png", dpi = 100) ``` 

… lo cual seguro (a menos que haga las matemáticas) es prueba y error en comparación con la definición de las dimensiones en el fragmento, pero tal vez ayudará a alguien.