yihui tutorial the name guide definitive chunk r knitr pixels pandoc r-markdown

tutorial - r markdown the definitive guide pdf



Baja resoluciĆ³n en knitr usando Rmd (3)

Es muy probable que desde que se hizo esta pregunta, el software haya mejorado. Vine a esta pregunta buscando la forma de aumentar la resolución de las parcelas. Encontré que el enfoque original de OP funcionaba de manera inmediata para mí.

Por lo tanto, la configuración de dpi=300 (porque dpi=150 no produjo una diferencia suficientemente obvia) en los parámetros del fragmento, produjo una imagen de calidad mucho mayor sin modificar el tamaño físico de las imágenes dentro de Word.

```{r, echo=FALSE, dpi=300, fig.width=7, fig.height=7} plot(0,0,type="n",xlim=c(0,500), ylim=c(-12,0), las=1) color <- rainbow(500) text(380,-1,"Test",pos=4) lseq <- seq(-6,-2,length.out=500) for(j in seq_along(lseq)) { lines(c(400,450), rep(lseq[j], 2), col=color[j]) } polygon(c(400,450,450,400), c(-6,-6,-2,-2), lwd=1.2) ```

Sin embargo, establecer out.width y out.height elimina la producción de la imagen por completo, con la advertencia "fig.align, out.width, out.height, out.extra no son compatibles con la salida de Word".

Tengo un archivo .Rmd y estoy intentando crear un archivo .docx a través de la función pandoc.

Quiero tener una figura con una resolución final de 504x504 píxeles (es decir, 7x7 pulgadas con 72 ppp). Desafortunadamente, el valor predeterminado de 72 ppp es de baja calidad, y me gustaría aumentarlo a, por ejemplo, 150 ppp sin alterar la resolución final (por lo que ya tendrá el tamaño correcto dentro del archivo .docx). Si mantengo las opciones fig.width y fig.height = 7 y configuro dpi = 150, obtengo la calidad que quiero pero la resolución final aumenta y la cifra salta de los márgenes .docx. Intenté jugar con los argumentos out.width y out.ight, pero cuando los incluyo simplemente no se traza nada en la .docx final.

Ideas?

Ejemplo de código .rmd:

My title ------------------------- *(this report was produced on: `r as.character(Sys.Date())`)* That''s my plot ```{r echo=FALSE} plot(0,0,type="n",xlim=c(0,500), ylim=c(-12,0), las=1) color <- rainbow(500) text(380,-1,"Test",pos=4) lseq <- seq(-6,-2,length.out=500) for(j in seq_along(lseq)) { lines(c(400,450), rep(lseq[j], 2), col=color[j]) } polygon(c(400,450,450,400), c(-6,-6,-2,-2), lwd=1.2) ```

Transformando en .docx

library(knitr) library(markdown) knit("example.Rmd") # produces the md file pandoc("example.md", format = "docx") #prodces the .docx file

Si intento volver a escalar la figura, simplemente no funciona. Abajo:

My title ------------------------- *(this report was produced on: `r as.character(Sys.Date())`)* That''s my plot ```{r echo=FALSE, dpi=150, fig.width=7, fig.height=7, out.width=504, out.height=504} plot(0,0,type="n",xlim=c(0,500), ylim=c(-12,0), las=1) color <- rainbow(500) text(380,-1,"Test",pos=4) lseq <- seq(-6,-2,length.out=500) for(j in seq_along(lseq)) { lines(c(400,450), rep(lseq[j], 2), col=color[j]) } polygon(c(400,450,450,400), c(-6,-6,-2,-2), lwd=1.2) ```


Este es un buen momento para aprovechar las funciones de personalización dinámica incorporadas de knitr para los tipos de salida. Ths fue probado con ambos objetivos de salida ...

````{r img-setup, include=FALSE, cache=FALSE} out.format <- knitr::opts_knit$get("out.format") img_template <- switch( out.format, word = list("img-params"=list(fig.width=6, fig.height=6, dpi=150)), { # default list("img-params"=list( dpi=150, fig.width=6, fig.height=6, out.width="504px", out.height="504px")) } ) knitr::opts_template$set( img_template ) ````

Si no desea usar img_template para cada imagen producida, no puede llamar a la función set y en su lugar agregar opts.label="img_template" a los parámetros de los fragmentos con los que desea usarla, o anular la img_template por especificando los params explícitamente para el trozo.


Simplemente mantenga las cosas simples, configure todos los mandriles a ppp de 300 y amplíelos.

Ejecutar esto primero:

```{r setup, include=FALSE} knitr::opts_chunk$set(dpi=300,fig.width=7) ```