image - que - si reduzco mis comidas adelgazo
¿Cómo establecer el tamaño de la imagen local usando knitr para rebajar? (8)
Aquí hay algunas opciones que mantienen el archivo independiente sin volver a registrar la imagen:
Envuelva la imagen en etiquetas div
<div style="width:300px; height:200px">
![Image](path/to/image)
</div>
Usa una hoja de estilo
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;
}
Si tiene más de una imagen, es posible que necesite usar el pseudo-selector n-child para esta segunda opción.
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?
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 sintaxis LaTeX o Markdown, para insertar una imagen externa. Las opciones de fragmentos relacionadas con la salida de gráficos que funcionan para diagramas R normales también funcionan para estas imágenes, comoout.width
yout.height
.
Ejemplo:
```{r, out.width = "400px"}
knitr::include_graphics("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).
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.
Otra opción que funcionó para mí es jugar con la opción dpi de knitr::include_graphics()
como esta:
```{r}
knitr::include_graphics("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.
Respuesta actualizada: en knitr 1.14
puedes simplemente usar
![Image Title](path/to/your/image){width=250px}
Si está convirtiendo a HTML, puede establecer el tamaño de la imagen usando la sintaxis HTML usando:
<img src="path/to/image" height="400px" width="300px" />
o cualquier altura y ancho que quieras dar.
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.
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](path/to/image1){width=70%}![Image 2](path/to/image2){width=30%}
Puede ser creativo y apilar 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.