La résolution des pauvres dans knitr à l'aide de Mdm
J'ai un .Mdm fichier et je suis en train de créer un .fichier docx via la fonction pandoc.
Je veux avoir une image avec une résolution finale de 504x504 pixels (c'est à dire, 7x7inch avec 72dpi). Malheureusement, le défaut de 72 dpi est trop pauvre en qualité, et je voudrais augmenter à, disons, 150 dpi, sans modifier la résolution finale (donc il y aura déjà de la bonne taille dans le .fichier docx). Si je continue d'options fig.la largeur et la fig.hauteur=7 et définir ppp=150, - je obtenir la qualité que je veux mais au final, la résolution augmente, et la figure des coups à l'extérieur de l' .docx marges. J'ai essayé de jouer avec les arguments.la largeur et à l'extérieur.la hauteur, mais quand j'inclus ceux qu'il n'a tout simplement pas de l'intrigue quelque chose dans le final .docx.
Idées?
Exemple .Mdm code:
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)
```
Transformant en .docx
library(knitr)
library(markdown)
knit("example.Rmd") # produces the md file
pandoc("example.md", format = "docx") #prodces the .docx file
Si j'essaie de le redimensionner la figure, il ne fonctionne tout simplement pas. Ci-dessous:
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)
```
- peut-être stackoverflow.com/questions/14829791/... donner de l'inspiration
- Lorsque je sauvegarde les fichiers png, j'utilise quelque chose comme:
ppi = 300; png("mygraph.png", width=6*ppi, height=6*ppi, res=ppi)
- c'est l'équivalent de
fig.width=6, fig.height=6, dpi=300
dansknitr
out.width=504
n'est probablement pas suffisante, puisque vous n'avez pas à spécifier l'unité, mais tu veux sans doute dire pixelsout.width='504px'
; même avec ça, je ne suis pas sûr si pandoc pouvez faire un bon travail de réglage de la figure de la taille dans .docx; je n'ai pas de MS Word, donc je ne peux pas le vérifier- Malheureusement, il ne fonctionne pas pour les .docx. Il fonctionne très bien pour .html si. Merci!
- Par la façon saviez-vous que vous pouvez cliquer sur "tricot doc" dans RStudio si vous ajoutez quelques lignes .Mdm fichier ? rmarkdown.rstudio.com/word_document_format.html
Vous devez vous connecter pour publier un commentaire.
Il est plus probable que, depuis que cette question a été posée, le logiciel s'est améliorée. Je suis venu à cette question, à la recherche de comment augmenter la résolution de parcelles. J'ai trouvé OP approche originale travaillé out-of-the-box pour moi.
La mise en place de
dpi=300
(parce quedpi=150
ne produisent pas suffisamment de différence évidente) dans le bloc de paramètres, a produit une bien meilleure qualité d'image sans modifier la taille des images dans Word.Cependant, la mise en
out.width
etout.height
supprime la production de l'image, avec l'avertissement "fig.aligner, sur.largeur, hors.hauteur, hors.supplémentaires ne sont pas pris en charge pour Mot de sortie".C'est un moment idéal pour profiter de knitr intégré dans la dynamique des fonctionnalités de personnalisation pour les types de sorties. Ths a été testé avec les deux objectifs de production...
Si vous ne souhaitez pas utiliser le img_template pour chaque image produite vous pouvez soit pas appel à la fonction de configuration et ajouter
opts.label="img_template"
les params de l'morceaux que vous voulez l'utiliser avec ou remplacer les img_template en spécifiant les paramètres explicitement pour le morceau.Il suffit de garder les choses simples, ensemble de tous les mandrins à la résolution de 300 et de les rendre plus large.
Exécuter cette première chose: