Schlechte Auflösung in knitr mit Rmd
Habe ich eine .Rmd-Datei, und ich versuche, zu erstellen .docx-Datei über die Funktion pandoc.
Ich möchte eine Abbildung mit der definitiven Auflösung der 504x504 Pixel (dh, 7x7inch mit 72dpi). Leider ist die Standard-Auflösung von 72 dpi ist zu schlecht in der Qualität, und ich möchte, um Sie zu erhöhen, um, sagen wir, 150 dpi zu verändern, ohne die endgültige Lösung zu finden (so wird es schon die richtige Größe innerhalb der .docx-Datei). Wenn ich halten Optionen Abb.Breite und Abb.Höhe=7 und legen dpi=150, ich bekomme die Qualität die ich möchte, aber die endgültige Auflösung erhöht und die Figur bläst sich außerhalb der .docx-Margen. Ich habe versucht, das Spiel mit die Argumente aus.Breite und aus.Höhe, aber wenn ich schließen diejenigen ein, es funktioniert einfach nicht zeichnen alles, was in der Endabrechnung .docx.
Ideen?
Beispiel .Rmd-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)
```
Die Umwandlung in .docx
library(knitr)
library(markdown)
knit("example.Rmd") # produces the md file
pandoc("example.md", format = "docx") #prodces the .docx file
Wenn ich versuche zu skalieren das Bild, es funktioniert einfach nicht. Unten:
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)
```
- vielleicht stackoverflow.com/questions/14829791/... inspiration dienen
- Wenn ich speichern png-Dateien, ich verwende so etwas wie:
ppi = 300; png("mygraph.png", width=6*ppi, height=6*ppi, res=ppi)
- das entspricht
fig.width=6, fig.height=6, dpi=300
imknitr
out.width=504
ist wohl nicht genug, da wollte Sie nicht die Einheit, obwohl Sie wahrscheinlich bedeuten, Pixelout.width='504px'
; auch mit, dass ich nicht sicher bin, ob pandoc kann einen guten job machen-Einstellung die Abbildung Größe .docx; ich habe nicht MS Word, so dass ich nicht überprüfen kann, es- Leider ist es nicht Arbeit für .docx. Es funktioniert ganz gut .html obwohl. Danke!
- Übrigens wussten Sie, dass Sie können klicken Sie auf "stricken doc" in RStudio, wenn Sie fügen Sie einige Zeilen .Rmd Datei ? rmarkdown.rstudio.com/word_document_format.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist sehr wahrscheinlich, dass da diese Frage wurde gebeten, die software hat sich verbessert. Ich kam auf diese Frage suchen, wie zu einer Erhöhung der Auflösung des plots. Ich fand OP ' s original-Ansatz funktionierte out-of-the-box für mich.
So, Einstellung
dpi=300
(weildpi=150
produzieren nicht ausreichend offensichtliche Unterschied) in den chunk Parameter, erzeugt eine viel höhere Bildqualität ohne änderung der physikalischen Größe der Bilder in Word.Jedoch, Einstellung
out.width
undout.height
entfernt die Produktion des Bildes vollständig, mit der Warnung "Abb.richten, aus.Breite, aus.Höhe, aus.zusätzliche werden nicht unterstützt für die Word-Ausgabe".Dies ist eine großartige Zeit, um die Vorteile von knitr ' s built-in dynamische Anpassungsmöglichkeiten für die Ausgabe-Typen. Ths getestet wurde mit beiden output-Ziele...
Wenn Sie nicht wollen, verwenden Sie die img_template für jedes Bild produziert, können Sie entweder rufen Sie die set Funktion und stattdessen hinzufügen
opts.label="img_template"
zu den params der Stücke, die Sie wollen, um es mit, oder überschreiben Sie die img_template durch die Angabe der Parameter, die explizit für das Stück.Nur die Dinge einfach halten, dann setzen Sie alle Klemmen-zu-dpi von 300 und machen Sie weiter.
Ausführen dieser ersten Sache: