guide - r markdown results
Tamaño de trazado y resolución con reducción de R, knitr, pandoc, beamer (2)
No cabe en la diapositiva por defecto, ni siquiera se imprime por otros medios.
Aquí está el .Rmd: Editar: parece que tienes que usar plot () en cada fragmento. El segundo gráfico ahora se imprime.
# Plot should show at high resolution
```{r echo=FALSE, comment = ""}
# load some data
require(plyr)
rbi <- ddply(baseball, .(year), summarise,
mean_rbi = mean(rbi, na.rm = TRUE))
```
```{r}
# plot
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Second attempt
```{r, fig.width = 2, fig.height = 2}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Third attempt
```{r, out.width = 2, out.height = 2}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Fourth attempt
```{r, out.width = ''200px'', out.height = ''200px''}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Fifth attempt
```{r, out.width = ''//maxwidth''}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
Guarde eso como test.Rmd
Luego compile en tex usando beamer:
knit("test.Rmd")
system("pandoc -s -t beamer --slide-level 1 test.md -o test.tex")
Abra test.tex
en RStudio y haga clic en "Compilar PDF".
He leído la documentación de Yihui y espero no haberme perdido algo realmente obvio.
Edite un nuevo código que incorpore las sugerencias de Yihui.
```{r setup, include=FALSE}
opts_chunk$set(dev = ''pdf'')
```
# Plot should show at high resolution
```{r echo=FALSE, comment = ""}
# load some data
require(plyr)
rbi <- ddply(baseball, .(year), summarise,
mean_rbi = mean(rbi, na.rm = TRUE))
```
```{r}
# plot
plot(mean_rbi ~ year, type = "l", data = rbi)
```
# Second attempt
```{r, fig.width = 4, fig.height = 4}
plot(mean_rbi ~ year, type = "l", data = rbi)
```
sessionInfo()
R version 3.0.1 (16/05/2013)
Platform: x86_64-pc-linux-gnu (64-bit)
Local:
[1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C LC_TIME = C LC_COLLATE = C
[5] LC_MONETARY=C LC_MESSAGES=C LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8 markdown_0.6 knitr_1.2 rCharts_0.3.51 slidify_0.3.52
loaded via a namespace (and not attached):
[1] RJSONIO_1.0-3 codetools_0.2-8 digest_0.6.3 evaluate_0.4.3 formatR_0.8
[6] grid_3.0.1 lattice_0.20-15 stringr_0.6.2 tools_3.0.1 whisker_0.3-2
[11] yaml_2.1.7
Creo que es una pregunta frecuente sobre el comportamiento de las figuras en las diapositivas producidas por Pandoc y las rebajas. El verdadero problema es que R Markdown produce imágenes PNG por defecto (de knitr
), y es difícil obtener el tamaño correcto de las imágenes PNG en LaTeX (no sé por qué). Sin embargo, es bastante fácil obtener el tamaño correcto de las imágenes PDF. Una solución es restablecer el dispositivo gráfico predeterminado a PDF en su primer fragmento:
```{r setup, include=FALSE}
opts_chunk$set(dev = ''pdf'')
```
Entonces todas las imágenes se escribirán como archivos PDF y LaTeX estará feliz.
Su segundo problema es que está mezclando las unidades HTML con unidades LaTeX en out.width
/ out.height
. LaTeX y HTML son tecnologías muy diferentes. No debe esperar que /maxwidth
funcione en HTML, o 200px
en LaTeX. Especialmente cuando quiera convertir Markdown a LaTeX, será mejor que no establezca out.width
/ out.height
(use fig.width
/ fig.height
y deje que LaTeX use el tamaño original).
Los tamaños de figura se especifican en pulgadas y pueden incluirse como una opción global del formato de salida del documento. Por ejemplo:
---
title: "My Document"
output:
html_document:
fig_width: 6
fig_height: 4
---
Y el tamaño de la trama en el dispositivo gráfico se puede aumentar a nivel de fragmento:
```{r, fig.width=14, fig.height=12} #Expand the plot width to 14 inches
ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic
geom_line(size=2) + #makes the line thicker
theme_grey(base_size = 25) #increases the size of the font
```
También puede usar los argumentos out.width
y out.height
para definir directamente el tamaño del gráfico en el archivo de salida:
```{r, out.width="200px", out.height="200px"} #Expand the plot width to 200 pixels
ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic
geom_line(size=2) + #makes the line thicker
theme_grey(base_size = 25) #increases the size of the font
```