Was ist in R der beste Grafiktreiber für die Verwendung der Grafiken in Microsoft Word?

10

Ich verwende R, um ordentliche Diagramme zu erstellen, die ich in Microsoft Office-Dokumenten verwende. Laut dieser Seite wird mit dem PDF-Treiber die beste Qualität erzielt. Leider unterstützt Word das Importieren von PDF-Abbildungen nicht. Was soll ich verwenden?

static_rtti
quelle
1
Sie können PDF-Zahlen in Word einfügen. Verwenden Sie "Objekt einfügen". Randnotiz: Wenn Sie LaTeX noch nie zuvor verwendet haben, empfehle ich dringend, es als Alternative zu MS Word zu versuchen.
Mark999
1
@ mark999: Danke für deinen Vorschlag. Ich habe es versucht, aber leider konnte ich nichts Besseres als ein PDF-Symbol im Dokument erhalten. Ich muss Word in diesem Zusammenhang verwenden, weil ich mit anderen Menschen zusammenarbeite, die Word verwenden. LaTeX ist nett, aber nicht für jedes Projekt oder jeden.
static_rtti
4
@ mark999 LaTeX ist einfach keine Option für die Zusammenarbeit mit nicht-mathematischen Personen. Wie Gavin Simpson erklärt, können hochwertige Grafiken durch Auswahl geeigneter Formate in Word-Dokumente integriert werden.
whuber
3
@ mark999 Leider muss ich whuber zustimmen. LaTeX ist nicht wirklich eine Option außerhalb einiger Felder, und selbst solche, die ziemlich mathematisch intensiv sind, verwenden Word immer noch als Standard. Ich dachte eine Weile darüber nach und ließ es dann fallen, weil es mehr Ärger war, als es für die Zusammenarbeit wert war.
Fomite
1
@whuber, ich stimme dir zu und EpiGrad stimme ich dir teilweise zu. Ich schreibe wahrscheinlich 90% in LaTeX und den Rest in MS Word (ich verwende Word nur, wenn ich keine Wahl habe). static_rtti: Ich weiß nicht, was für Sie falsch läuft, da ich problemlos PDF-Dateien in Word-Dokumente eingefügt habe.
Mark999

Antworten:

4

Wenn Sie an einem PC arbeiten, ist es sehr praktisch, Zahlen in EMF-Formaten über die Zwischenablage in Office-Dokumente einzufügen.

emf ist ein natives Windows-Vektorgrafikformat, mit dem Sie die Abbildungen mit MS Office-Tools bearbeiten können. Es ist nicht perfekt, aber es ist eine schnelle Möglichkeit, einen einfachen Bericht zu erstellen.

Wenn Ihre Dokumente überhaupt kompliziert sind, ist der Umgang mit Zahlen in MS Word schrecklich.

Leo Schalkwyk
quelle
12

Hängt davon ab, wie Sie Ihre Word-Dokumente verwenden und welche Arten von Abbildungen Sie in das Dokument aufnehmen möchten.

Wenn es sich bei den Abbildungen um Standard-R-Diagramme mit einer moderaten Anzahl von Punkten / Daten handelt, bieten vektorbasierte Formate die beste Wiedergabe und ermöglichen eine einfache Neuskalierung der Bildgröße bei kleiner Dateigröße. EPS via ist postscript(...., onefile = FALSE, paper = "special")in solchen Fällen das beste Format, wenn Sie in eine PDF-Datei ausgeben oder auf einem Laserdrucker drucken, der Postscript kennt. Leider verwendet Word ein Plugin eines Drittanbieters, um EPS-Zahlen zu laden, wodurch eine beschissene Bitmap-Vorschau mit niedriger Auflösung erstellt wird, die auf dem Bildschirm angezeigt wird. Beim Drucken erhalten Sie jedoch das hochwertige EPS.

Wenn die Diagramme als Raster betrachtet werden könnten (Oberflächendiagramme oder Bilddiagramme [Heatmaps] mit einer hohen Anzahl von "Pixeln") oder wenn die Diagramme eine sehr große Anzahl von Punkten enthalten, führt das Beibehalten der Vektorinformationen für solche Diagramme zu einer großen Anzahl Dateigröße und hohe Verarbeitungskosten zum Laden in Word und Speichern im Speicher, während Sie an dem Dokument arbeiten. In solchen Fällen würde ich ein hochauflösendes TIFF oder ein PNG über tiff()oder png()verwenden. In den Hilfedateien finden Sie Unterstützung beim Einstellen der Bildgröße in Pixel und der Auflösung. Diese Geräte rendern die Figur als Bitmap-Bild, das bei ausreichender Größe / Auflösung eine gewisse Neuskalierung toleriert, jedoch bei einer sehr großen Anzahl von Datenpunkten oder Zellen weitaus effizienter gespeichert wird.

Beachten Sie auch, dass nicht alle Geräte Transparenz unterstützen, vor allem, weil die zugrunde liegenden Dateiformate dies nicht zulassen. postscript()unterstützt keine Transparenz pdf()und png()tut dies auch. cairo_ps()unterstützt zwar Transparenz, erzeugt dabei jedoch tatsächlich ein Bitmap-Bild im EPS-Format, das möglicherweise nicht Ihren Wünschen entspricht.

Beachten Sie, dass beim Speichern Ihres Dokuments in PDF die Bitmap-Zahlen bis zu einem gewissen Grad heruntergerechnet werden. Ich habe vergessen, wie Word dies steuert, aber es hatte zwei Einstellungen im Dialogfeld Speichern, als der PDF-Typ ausgewählt wurde, und eine davon verkleinert die Bilder, um eine kleinere Dateigröße zu erzielen. Dies ist mit einem gewissen Qualitätsverlust verbunden. Seien Sie also vorsichtig, welche Option Sie wählen. Dies ist nicht spezifisch für Word - OpenOffice.org und LibreOffice verfügen über dieselben Funktionen, bieten jedoch eine weitaus feinere Kontrolle darüber, wie die Bilder komprimiert werden und ob sie komprimiert werden oder nicht. Dies liegt daran, dass PDF sowohl für die Bildschirm- als auch für die Druckerwiedergabe entwickelt wurde. Sie benötigen keine hohe Auflösung in Bildern, wenn Sie auf dem Bildschirm für das Web angezeigt werden. Bilder mit höherer Auflösung führen zu größeren Dateien, sodass das beabsichtigte Ziel der PDF-Datei festgelegt werden kann.

Stellen Sie Monica wieder her - G. Simpson
quelle
1
Danke, guter Tipp. Postscript scheint zum Drucken gut mit Word zu sprechen. Leider ist die schlechte Vorschau auf dem Bildschirm ein nicht triviales Problem. In meiner Umgebung werden viele Word-Dokumente gesendet und auf dem Bildschirm gelesen.
Peter Ellis
7

Wenn Sie unter Windows arbeiten, versuchen Sie es win.metafile. Es ist ein Vektorformat, wenn ich mich richtig erinnere, und es spielt sich gut mit Word.

mpiktas
quelle
5

R-Grafiken in Windows können ziemlich schwierig sein. Das größte Problem, das ich habe, ist, dass Anti-Aliasing unter Windows nicht richtig funktioniert. Aus irgendeinem Grund muss ich das Cairo-Geräte-Plugin verwenden, um es schön zu formatieren.

Ich habe sowohl Cairo als auch cairoDevice ausprobiert und finde derzeit, dass cairoDevice das einfachste und zuverlässigste ist. Es gibt einen StackOverflow-Beitrag dazu.

Um das cairoDevice-Paket zu verwenden, müssen Sie lediglich:

# Create the device
Cairo_png(filename="my_file_name.png",
    width=16,
    height=16,
    pointsize=18)
# Do a plot
plot(x, y)
# Saves the file
dev.off()

Sie können auch im PDF / SVG-Format speichern und dann Inkscape verwenden , um Ihr Diagramm zu bearbeiten, Schriftarten usw. zu ändern und es dann in das PNG-Format zu exportieren.

Max Gordon
quelle
Ja. Ich habe festgestellt, dass ein Png-Gerät in Kairo die am besten aussehenden Diagramme für die Anzeige auf dem Bildschirm in einem Word-Dokument erzeugt. Auf Maschinen, für die dies der Fall capabilities("cairo")ist TRUE, können Sie alternativ einfach png(..., type="cairo")oder etwas Ähnliches verwenden png(..., type="cairo", res=200), um eine ähnliche Ausgabe zu erhalten.
Josh O'Brien
1
@ JoshO'Brien - Guter Punkt. Ich habe seit meiner ursprünglichen Antwort zwei Blog-Beiträge zu diesem Thema geschrieben: gforge.se/2013/02/exporting-nice-plots-in-r und gforge.se/2013/03/exporting-plain-lattice-or-ggplot
Max Gordon
Super, danke für die Links. Irgendwie hatte ich die units="in"Option verpasst, bis ich sie las. Ich wünschte, ich hätte das vor ein oder zwei oder zehn Jahren gewusst ! Da Ihre Antwort hier die beste ist, lohnt es sich möglicherweise, sie zu bearbeiten oder ein Update über die type="cairo"Option mit dem eingebauten Gerät hinzuzufügen - insbesondere angesichts der Vorteile, die sie selbst gegenüber den Funktionen des Kairoer Pakets haben ...
Josh O ' Brien
3

PDF, ps, SVG oder eps sind vektorbasierte Grafikgeräte . JPG, TIFF, PNG usw. sind Rastergrafiken. Wenn es um Rastergrafiken geht, liegt der Kompromiss zwischen Größe und Qualität. Durch Anpassen von Breite, Höhe und anderen Formatierungen können Sie eine hohe Qualität der Rastergrafiken erzielen . Sie können das Bild im PNG- oder JPG-Format einfügen.

SVG-Bilder können in ein MSWORD-Dokument eingefügt werden. Sie können überprüfen , dies .

vinux
quelle
Beachten Sie, dass das SVG-Gerät von R manchmal Raster liefert, wenn Sie es nicht erwarten.
Thomas Levine
2

Der einfachste Weg, .pngDateien auszuwählen , war auch ich. Doch das Wort zeigt, dass sie ziemlich verschwommen sind - zumindest in meinem Fall. Als ich Eviews benutzte, versuchte ich es, .epswas zu einer Reihe von Problemen führte, aber die Qualität war besser. Ich denke, am Ende muss man sich zwischen dem kleineren von zwei Übeln entscheiden.

Seb
quelle
Ich denke, die Unschärfe ist auf den Word-Skalierungsalgorithmus zurückzuführen. Möglicherweise erzielen Sie vor dem Einfügen bessere Ergebnisse bei der Größenänderung in einem Bildbearbeitungsprogramm, sodass es von Word zu 100% angezeigt wird.
James
oder erstellen Sie zunächst die PNG-Datei in der gewünschten Größe. Die Standardeinstellungen sind, width = 480, height = 480, units = "px", pointsize = 12,aber Sie können diese in Ihrem R-Skript ändern
Henry
2

Dies beantwortet Ihre Frage nicht direkt, aber Sie können eine bessere Integration zwischen R und MS Word erzielen, indem Sie entweder das R-Paket R2wd oder die kommerzielle Software Inference for R verwenden . Diese bieten eine Sweave-ähnliche direkte Integration von R und MS Word, wodurch das Ausschneiden und Einfügen oder Speichern und Laden entfällt und das Aktualisieren von Plots im Dokument über die Befehlszeile vereinfacht wird. Ich habe diese nicht verwendet, aber ich verwende Sweave und empfehle die Lese- und Schreibprogrammierung , die von all diesen Tools unterstützt wird.

Sweave ist das am häufigsten verwendete Programmierwerkzeug für Alphabetisierung unter R-Benutzern. Es ist LaTeX + R, und so werden R-Vignetten und viele Bücher und Zeitschriftenartikel geschrieben.

Die Word + R-Tools versprechen eine weniger entmutigende Benutzeroberfläche für neue Benutzer. LaTeX hat eine steilere Lernkurve als Word.

Bei 199 USD / Jahr macht es die Inferenz für R jedoch für andere schwierig, Ihre Analysen zu reproduzieren, im Gegensatz zu Sweave, das Teil der Basis R ist.

David LeBauer
quelle