Fehler in plot.new (): Bildränder zu groß, Streudiagramm


107

Ich habe in verschiedenen Fragen nach einer Lösung gesucht und versucht, was vorgeschlagen wurde, aber ich habe keine Lösung gefunden, damit es funktioniert.

Jedes Mal, wenn ich diesen Code ausführen möchte, heißt es immer:

Fehler in plot.new (): Bildränder zu groß

und ich weiß nicht, wie ich das beheben soll. Hier ist mein Code:

par(mfcol=c(5,3))
hist(RtBio, main="Histograma de Bio Pappel")
boxplot(RtBio, main="Diagrama de Caja de Bio Pappel")
stem(RtBio)
plot(RtBio, main="Gráfica de Dispersión")

hist(RtAlsea, main="Histograma de Alsea")
boxplot(Alsea, main="Diagrama de caja de Alsea")
stem(RtAlsea)
plot(RtTelev, main="Gráfica de distribución de Alsea")

hist(RtTelev, main="Histograma de Televisa")
boxplot(telev, main="Diagrama de Caja de Televisa")
stem(Telev)
plot(Telev, main="Gráfica de dispersión de Televisa")

hist(RtWalmex, main="Histograma de Walmex")
boxplot(RtWalmex, main="Diagrama de caja de Walmex")
stem(RtWalmex)
plot(RtWalmex, main="Gráfica de dispersión de Walmex")

hist(RtIca, main="Histograma de Ica")
boxplot(RtIca, main="Gráfica de caja de Ica")
stem(RtIca)
plot(RtIca, main="Gráfica de dispersión de Ica")

Was kann ich tun?


2
Mögliches Duplikat des Fehlers in plot.new ():
Bildränder

2
Die Ränder scheinen zu groß für Ihr Bild zu sein. Dies kann passieren, wenn Sie ein kleines Plotfenster haben. In jedem Fall reicht Ihre Beschreibung nicht aus, um das Problem zu diagnostizieren. Wir könnten ein reproduzierbares Beispiel oder einen Screenshot Ihrer R-Sitzung mit dem Plotfenster verwenden.
Roman Luštrik

In meinem Fall hat es geholfen, mit einer kleinen Teilmenge der Daten zu debuggen, die wie geplottet werden sollten plot(df[1,1:3], df2[1,1:3])- und dann wurde mir klar, dass ich eigentlich plot(unlist(df[1,1:3]), unlist(df2[1,1:3]))auch Folgendes
fabianegli

Antworten:


161

Jedes Mal, wenn Sie Diagramme erstellen, wird möglicherweise der Fehler "-" Error in plot.new() : figure margins too largeangezeigt. Um solche Fehler zu vermeiden, können Sie zuerst die par("mar")Ausgabe überprüfen . Sie sollten bekommen:

[1] 5.1 4.1 4.1 2.1

Um das zu ändern, schreiben Sie:

par(mar=c(1,1,1,1))

Dies sollte den Fehler beheben. Oder Sie können die Werte entsprechend ändern.

Hoffe das funktioniert bei dir.


2
Woher wissen Sie genau, welche Werte innerhalb der Ränder liegen? Und warum sagst du, dass ich [1] 5.1 4.1 4.1 2.1 bekommen sollte, aber dann sagst du mir, ich soll es allen Einsen empfehlen?
Herman Toothrot

2
Ich hatte das gleiche Problem mit RStudio, und als ich eintrat, habe par("mar")ich genau die gleiche Zeichenfolge abgerufen, [1] 5.1 4.1 4.1 2.1also habe par(mar=c(1,1,1,1))plot () nichts geplottet, sodass ich sowohl RStudio als auch das Terminal schließen musste. Nach dem erneuten Öffnen von RStudio war es wieder normal.
Noobninja

2
Das gleiche Problem tritt auch beim R-Markdown in RStudio auf. Weder die Lösung von Guest R noch der Neustart von @noobninja haben dies für mich behoben.
SC.

Sie erhalten diesen Fehler aufgrund eines Problems mit dem Layout der RStudio-Benutzeroberfläche, bei dem der Code nicht stimmt. Die zweite Antwort hat es für mich behoben.
Nicole Sullivan

1
@Nicole Sullivan Ich habe diesen Fehler auch ohne RStudio bekommen. Ich habe wie beschrieben und es funktioniert. Danke @djhurio!
Gwang-Jin Kim

104

Dies kann passieren, wenn Ihr Plotfenster in RStudio zu klein für die Ränder des Plots ist, das Sie erstellen möchten. Versuchen Sie, es zu erweitern, und führen Sie dann Ihren Code erneut aus.

Die RStudio-Benutzeroberfläche verursacht einen Fehler, wenn das Plotfeld zu klein ist, um das Diagramm anzuzeigen: RStudio mit zu kleinem Plotpanel

Durch einfaches Erweitern des Plotfelds wird der Fehler behoben und das Diagramm angezeigt: RStudio mit erweitertem Plotpanel


5
Es funktioniert in der Tat. Einfach die Erweiterung des Grundstücksbereichs hilft
Jiapeng Zhang

3
Ja, die Größenänderung der Panels in RStudio funktioniert. Es handelt sich um einen RStudio-Fehler, der verursacht wird, wenn Sie die rechte Seite der Benutzeroberfläche minimieren, indem Sie das Plotfenster schließen.
Nicole Sullivan

Dies funktioniert tatsächlich in den meisten Fällen. Es gibt eine kleine Minderheit von Fällen, in denen die Ränder tatsächlich so klein sind, dass Sie selbst dann keine Lösung für dieses Problem finden, wenn Sie dieses Fenster maximieren
Dimitrios Zacharatos

27

Das Aufrufen dev.off()von RStudio zum Öffnen eines neuen Grafikgeräts mit Standardeinstellungen hat bei mir funktioniert. HTH.


1
Könnten Sie bitte erklären, wie das geht?
Swift Arrow

20

Wenn Sie diese Meldung in RStudio erhalten, klicken Sie auf die Registerkarte "Besenstiel" auf der Registerkarte "Diagramme" und versuchen Sie es erneut mit plot ().

Führen Sie außerdem den Befehl aus

graphics.off()

11
Schreiben Sie diese drei Zeilengraphics.off() par("mar") par(mar=c(1,1,1,1))
Hiren

6

Löschen Sie einfach die Diagramme und versuchen Sie erneut, den Code auszuführen ... Es hat bei mir funktioniert


1

Nur eine Randnotiz. Manchmal tritt dieser "Rand" -Fehler auf, weil Sie eine hochauflösende Zahl (z. B. dpi = 300oder res = 300) in R speichern möchten .
In diesem Fall müssen Sie lediglich die Breite und Höhe angeben . (Übrigens, ggsave() erfordert das nicht.)

Dies verursacht den Randfehler:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()

Dadurch wird der Randfehler behoben:

# eg. for tiff()
par(mar=c(1,1,1,1))
tiff(filename =  "qq.tiff",
     res = 300,                                                 # the margin error.
     width = 5, height = 4, units = 'in',                       # fixed
     compression = c( "lzw") )
# qq plot for genome wide association study (just an example)
qqman::qq(df$rawp, main = "Q-Q plot of GWAS p-values", cex = .3)
dev.off()
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.