Durchlaufe eine Reihe von qplots

7

Ich möchte eine lange Reihe von qplots oder ggplot2 Plots durchlaufen, die bei jeder Pause stehen bleiben, damit ich sie untersuchen kann, bevor ich weitermache.

Der folgende Code erzeugt keine Plots:

%Vor%

Aber wenn ich diese Zeile nach dem Ausführen der Schleife ausführen, bekomme ich ein Diagramm:

%Vor%

Was ist der Grund für dieses Verhalten? Wie zeige ich die Diagramme innerhalb der Schleife an?

Nachverfolgung: Gibt es einen eleganteren Weg, um die Variablen zu durchlaufen als mit mtcars[,Var] und xlab=Var ?

    
Zach 19.10.2011, 16:23
quelle

3 Antworten

10

Wie die anderen Antworten schon gesagt haben, umschließen Sie jeden qplot() -Aufruf in print() (das ist R FAQ 7.22 ). Der Grund dafür ist, dass ggplots nicht auf das Grafikgerät gedruckt werden, bis print.ggplot für sie aufgerufen wird. print() ist eine generische Funktion, die hinter den Kulissen an print.ggplot versendet.

Wenn Sie im repl arbeiten ("read-evaluate-print loop", alias shell), wird der Rückgabewert der vorherigen Eingabezeile automatisch über einen impliziten Aufruf von print() ausgegeben. Deshalb qplot(mtcars[,Var], wt, data=mtcars, xlab=Var) funktioniert für Sie. Es hat nichts mit Scope oder der for-Schleife zu tun. Wenn Sie diese Zeile irgendwo anders platzieren würden, die nicht direkt zum repl zurückkehrt, wie in einer Funktion, die etwas anderes zurückgibt, würde das nichts tun.

    
Tavis Rudd 19.10.2011, 16:51
quelle
6

Ich habe kürzlich etwas Ähnliches gemacht und dachte, ich würde zwei zusätzliche Bits Code erwähnen, die geholfen haben. Ich habe diese Zeile in die for-Schleife eingefügt, um R für einen Moment (in diesem Fall eine halbe Sekunde) nach dem Drucken jedes Plots anzuhalten:

%Vor%

Alternativ können Sie die Plots nicht nur auf dem Bildschirm anzeigen, sondern auch direkt in Dateien speichern und dann in Ruhe durchsuchen. Oder in meinem Fall habe ich versucht, die Flugbahn einer Biene, die wir verfolgten, zu animieren, also importierte ich die Bildsequenz in ImageJ und speicherte sie als animiertes GIF.

%Vor%     
James Waters 21.10.2011 08:59
quelle
5

Fügen Sie print hinzu:

%Vor%

Für eine Erklärung siehe Tavis Rudds Antwort.

    
ROLO 19.10.2011 16:28
quelle

Tags und Links