Ich zeichne eine einfache lineare Regression mit R. Ich möchte dieses Bild als PNG oder JPEG speichern. Ist es möglich, dies automatisch zu tun? (per Code)
Es gibt zwei verschiedene Fragen: Erstens schaue ich bereits auf das Diagramm auf meinem Monitor und möchte es so speichern, wie es ist. Zweitens habe ich den Plot noch nicht generiert, möchte ihn aber direkt auf der Festplatte speichern, wenn ich meinen Plotcode ausführe.
Antworten:
Es gibt zwei eng miteinander verbundene Fragen und jeweils eine Antwort.
1. In meinem Skript wird zukünftig ein Bild generiert. Wie speichere ich es auf der Festplatte?
Um ein Diagramm zu speichern, müssen Sie Folgendes tun:
png()
,bmp()
,pdf()
oder ähnlichdev.off()
Ein Beispielcode zum Speichern des Plots in einer
png
Datei:Dies wird in der (kombiniert) Hilfeseite für die grafischen Formate beschrieben
?png
,?bmp
,?jpeg
und?tiff
sowie in der separaten Hilfeseite?pdf
.Beachten Sie jedoch, dass das Bild auf der Festplatte möglicherweise anders aussieht als das gleiche Diagramm, das direkt auf Ihrem Bildschirm dargestellt wird, z. B. wenn Sie die Größe des Bildschirmfensters geändert haben.
Beachten Sie, dass Sie Ihren Plot explizit drucken müssen , wenn Ihr Plot von einem erstellt wurde
lattice
oderggplot2
Sie ihn explizit drucken müssen. In dieser Antwort wird dies ausführlicher erläutert und es werden auch Links zu den häufig gestellten Fragen ( R) angezeigt : Der qplot von ggplot wird beim Sourcing nicht ausgeführt2. Ich betrachte gerade ein Diagramm auf meinem Bildschirm und möchte es unverändert auf die Festplatte kopieren.
Dies sollte das Bild perfekt kopieren und dabei die Größe des interaktiven Fensters berücksichtigen. Sie können, wie im ersten Teil dieser Antwort, durch
pdf
andere Dateitypen wie ersetzenpng
.quelle
getwd()
dev.print
. Es gibt zwei eng miteinander verbundene Fragen, die meiner Meinung nach unterschiedliche Antworten benötigen. Die zweite Unterfrage lautet im Wesentlichen "Wie speichere ich ein Bild, das ich bereits auf meinem Bildschirm gezeichnet habe?". Entschuldigung, wenn meine Bearbeitung nicht sehr gut ist, können Sie meine Änderungen gerne verbessern.m3=garchFit(~arma(3,0)+garch(1,1))
und benutzeplot(m3)
.Wenn Sie das Diagramm weiterhin in R sehen möchten, können Sie Folgendes verwenden
dev.copy
:Wenn Sie in R eine Unordnung von zu vielen Plotfenstern erreichen
graphics.off()
, schließen Sie alle Plotfenster.quelle
dev.print
ist besser, da es das Bild genau vom Bildschirm kopiert.dev.copy
Erzwingt, dass jedes Bild standardmäßig quadratisch ist. Dies ist frustrierend, wenn Sie alles gut interaktiv eingerichtet habendev.print()
mit den Breiten- und Höhenparametern, um die Abmessungen zu definieren. zBdev.copy(device = png, filename = 'MyPlot.png', width = 1000, height = 500) dev.off()
Wenn Sie
ggplot2
die bevorzugte Art des Speicherns verwenden, verwenden Sieggsave
. Zuerst müssen Sie zeichnen, nachdem Sie das von Ihnen aufgerufene Diagramm erstellt habenggsave
:Das Format des Bildes wird durch die Erweiterung bestimmt, die Sie für den Dateinamen auswählen. Zusätzliche Parameter können übergeben werden
ggsave
, vor allemwidth
,height
unddpi
.quelle
dev
funktionierte diese Lösung auf einer virtuellen Maschine ohne Grafikgeräte.So was
oder dieses
oder dieses
Und wahrscheinlich auch andere. Sie sind alle zusammen auf den Hilfeseiten aufgeführt.
quelle
Bei der ersten Frage finde
dev.print
ich das Beste, wenn ich interaktiv arbeite. Zuerst richten Sie Ihren Plot visuell ein und wenn Sie mit dem, was Sie sehen, zufrieden sind, können Sie R bitten, den aktuellen Plot auf der Festplatte zu speichernSie können durch
pdf
andere Formate wie ersetzenpng
.Dadurch wird das Bild genau so kopiert, wie Sie es auf dem Bildschirm sehen. Das Problem mit
dev.copy
ist, dass das Bild häufig unterschiedlich ist und sich nicht an die Fenstergröße und das Seitenverhältnis erinnert. Dadurch wird das Diagramm standardmäßig quadratisch.Bei der zweiten Frage (wie andere bereits beantwortet haben) müssen Sie die Ausgabe auf die Festplatte leiten, bevor Sie Ihre Plotbefehle ausführen
quelle
Wenn Sie R Studio http://rstudio.org/ verwenden, gibt es ein spezielles Menü, in dem Sie Ihren Plot in einem beliebigen Format und in einer beliebigen Auflösung speichern können
quelle
Wenn Sie ein Gerät mit öffnen
png()
,bmp()
,pdf()
usw. , wie vorgeschlagen Andrie (die beste Antwort), werden die Fenster mit Plots nicht Pop - up öffnen, nur * .png, * .bmp oder * .pdf - Dateien werden erstellt. Dies ist bei umfangreichen Berechnungen praktisch, da R nur eine begrenzte Anzahl von Grafikfenstern verarbeiten kann.Wenn Sie jedoch die Diagramme anzeigen und auch speichern möchten, rufen Sie an,
savePlot(filename, type)
nachdem die Diagramme gezeichnet wurden und das Fenster mit ihnen aktiv ist.quelle
quelle
Um diese Antworten zu ergänzen: Wenn Sie ein R-Skript haben, das Aufrufe enthält, die Diagramme für den Bildschirm generieren (das native Gerät), können diese alle in einer PDF-Datei (dem Standardgerät für eine nicht interaktive Shell) gespeichert werden. "Rplots.pdf "(der Standardname) durch Umleiten des Skripts vom Terminal nach R (vorausgesetzt, Sie verwenden Linux oder OS X), z.
Dies könnte nach Bedarf in jpg / png konvertiert werden
quelle
In einigen Fällen möchte man ein Basis-Plot sowohl speichern als auch drucken. Ich habe ein bisschen Zeit verbracht und mir diese Dienstprogrammfunktion ausgedacht:
Beachten Sie, dass man verwenden muss
quote
, sonst wird derplot(x)
Aufruf in der globalen Umgebung ausgeführt und anNULL
weitergeleitetbasesave()
.quelle
quelle