2015-11-02 9 views
5
zu deaktivieren

Ich benutze Jupyter Notebooks mit einem R-Kernel (3.2.2) in OSX, durcharbeiten einige grundlegende Statistiken Übungen. Vor ein paar Tagen habe ich zum ersten Mal mit ggplot gespielt und einige Befehle von einer Notebook-Zelle ausgeführt, die mit dem Ausdrucken in PDF-Dateien experimentierte, mit anderen Worten wie folgt: pdf("file.pdf"); plot(x, y); dev.off() Ich habe keinen dieser Zelleninhalte behalten, also Ich kann nicht genau sehen, was ich ausgeführt habe, aber ich stelle mir vor, dass es möglich ist, dass ich einige PDFs erstelle und keinen dev.off() -Befehl einschließe?Ich kann nicht scheinen, ein Gerät mit dev.off() in R

Mein Problem ist, seit dieser Sitzung, jetzt jede Zelle, die ich in einem Notebook (einschließlich neuer leerer) laufen, erzeugt eine unerwünschte PDF-Datei. Wenn dieser Code das Zeichnen einer Figur beinhaltet, enthält die PDF diese Figur, wenn der Code etwas anderes ist, kann die erstellte PDF nicht geöffnet werden. Ich kann keinen Weg finden, elegant oder brutal, um diese PDFs nicht entstehen zu lassen.

Wenn ich auf ein neues leeres Notizbuch gehen:

läuft dev.list() kehrt pdf: 2
läuft dev.cur() kehrt pdf: 2
läuft dev.off() kehrt null device: 1

aber dann, wenn unmittelbar nach betreibe ich entweder dev.list() oder dev.cur() wieder kommen sie wieder pdf: 2

Ich kann zusätzliche neue Geräte öffnen, und dev.off() gelingt es, sie zu schließen. Aber dieses pdf: 2 Gerät wird nicht weggehen. Ich habe versucht, alle meine Sitzungen zu beenden, meine Maschine neu zu starten, usw., ohne Erfolg; Vorschläge?

Zusätzlich, wenn ich einen pdf() Befehl von einer Konsole in Terminal (d. H. Nicht von einem Notebook) ausführen, werden meine Plots als von Quartz generiert angezeigt; Ich verstehe, dass dies ein Quartz-Problem und kein R-Problem sein könnte, aber meine Frage bleibt, wie schließe ich dieses Gerät, oder verhindere auf andere Weise, dass all diese PDFs erstellt werden?

+0

Haben Sie versucht, die dev.off läuft() Befehl zweimal? dev.off(); dev.off() Manchmal muss ich ein zusätzliches Gerät schließen, obwohl ich kein zusätzliches geöffnet habe. – anotherFishGuy

+0

Danke für den Vorschlag. Ich hatte das nicht getan, aber es funktioniert nicht. Es gibt 'Error in dev.off() zurück: Gerät 1 (das Null-Gerät) kann nicht heruntergefahren werden' und dann, wie zuvor, 'dev.list()' und 'dev.off()' setzen 'pdf: 2 zurück ' – jtd

Antwort

0

Dies kann ein Problem sein, wenn eine sink() geöffnet, aber nicht geschlossen wurde, möglicherweise weil ein Fehler aufgetreten ist, bevor der Schließungscode erreicht wurde.

Versuchen Sie dies ein offenes Waschbecken zu stopfen:

sink(NULL) 
ht @mdsumner 
Verwandte Themen