web-dev-qa-db-fra.com

Taille du tracé et résolution avec R markdown, knitr, pandoc, beamer

Ne tient pas par défaut sur la diapositive, n'imprime même pas par d'autres moyens.

Voici le .Rmd: Edit: il semble que vous deviez utiliser plot () dans chaque bloc. La deuxième parcelle est maintenant imprimée.

# 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)
```

Enregistrez cela sous test.Rmd Puis compilez en tex en utilisant beamer:

knit("test.Rmd")
system("pandoc -s -t beamer --slide-level 1 test.md -o test.tex")

Ouvrez test.tex Dans RStudio et cliquez sur "Compiler PDF".

J'ai lu les documentation de Yihui et j'espère ne pas avoir oublié quelque chose de vraiment évident.

Éditez un nouveau code incorporant les suggestions 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  
58
nacnudus

Je pense que c’est une question fréquemment posée à propos du comportement des personnages dans les diapositives Beamer produites à partir de Pandoc et de markdown. Le vrai problème est que R Markdown produit des images PNG par défaut (à partir de knitr), et il est difficile d’obtenir la taille correcte des images PNG dans LaTeX par défaut (je ne sais pas pourquoi). Cependant, il est assez facile d’obtenir la taille de PDF images correctes. Une solution consiste à réinitialiser le périphérique graphique par défaut sur PDF dans votre premier bloc:

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

Ensuite, toutes les images seront écrites sous forme de fichiers PDF) et LaTeX sera ravie.

Votre deuxième problème est que vous mélangez les unités HTML avec les unités LaTeX dans out.width/out.height. LaTeX et HTML sont des technologies très différentes. Vous ne devez pas vous attendre à ce que \maxwidth Fonctionne en HTML ou 200px Dans LaTeX. Surtout quand vous voulez convertir Markdown en LaTeX, vous feriez mieux de ne pas définir out.width/out.height (Utilisez fig.width/fig.height Et laissez LaTeX utiliser l'original Taille).

46
Yihui Xie

Les tailles de figure sont spécifiées en pouces et peuvent être incluses en tant qu'option globale du format de sortie du document. Par exemple:

---
title: "My Document"
output:
  html_document:
    fig_width: 6
    fig_height: 4
---

Et la taille de la parcelle dans le périphérique graphique peut être augmentée au niveau du bloc:

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

Vous pouvez aussi utiliser le out.width et out.height arguments pour définir directement la taille du tracé dans le fichier de sortie:

```{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
```
19
Cro-Magnon