Das PNG-Gerät konnte nicht in der Schleife geöffnet werden

8

Ich habe mit einer Funktion in R herumgespielt, wo, kurz gesagt, ich einen for -loop habe, und bei jedem Schritt speichere ich ein Diagramm mit png , dann sofort readPNG so dass ich RGB-Informationen extrahieren kann. Ich mache dann einen zweiten Plot, dann readPNG , damit ich das RGB der beiden Bilder vergleichen kann. Das Problem ist, dass ich immer wieder eine Fehlermeldung bekomme, dass ich das Gerät png() nicht starten oder die Datei zum Schreiben öffnen kann, nach einer Anzahl von Loops (das können nur ein paar Loops sein, oder so viele wie ein einige tausend).

Hier ist wirklich vereinfachter Code, aber er enthält das Wesentliche und erzeugt die Fehlermeldung:

%Vor%

Und die Fehlermeldung:

%Vor%

Ursprünglich hatte ich graphics.off() als dev.off() , aber dann dachte ich, vielleicht war die Schleife so schnell, dass das Ausschalten eines Geräts nicht schnell genug war, bevor es wieder geöffnet werden musste und irgendwie "durcheinander" wurde. Ich habe auch versucht, Sys.sleep(0.1) nach jedem graphics.off zu verwenden, aber das half auch nicht. Fehle ich etwas dummes und offensichtliches, oder ist das nur ein Gerätefehler?

    
Herc 30.12.2012, 19:22
quelle

2 Antworten

16

Ich habe das gleiche Problem auftreten, obwohl nicht in einer Loop-Situation. In meinem Fall lag das daran, dass ich die .png-Ausgabe auf ein Verzeichnis richtete, das nicht existierte.

%Vor%

Nachdem ich das Verzeichnis erstellt und korrekt referenziert hatte, verschwand der Fehler und ich bekam mein .png Bild.

    
Dino Fire 30.09.2014 14:07
quelle
5

Ich hatte dieses Problem beim Speichern von Plots in einer Schleife. @Dino Fire gab mir einen Hinweis, mein schleifengenerierter Dateiname enthielt ein ungültiges Zeichen ...

Stellen Sie sicher, dass der Dateiname zulässig ist (suchen Sie nach Schrägstrichen, kaufmännischen Und-Zeichen, Apostrophen usw.)

    
Alex 26.03.2015 04:22
quelle

Tags und Links