ggplot erzwingen, um die Zählervariable auszuwerten

Ich bin auf ein interessantes Problem gestoßen, wie / wann Variablen in ggplot-Konstrukten ausgewertet werden.

Das einfachste Beispiel, das ich mir vorstellen kann, um dies zu reproduzieren, ist das Folgende (das die Punkte 1 bis 10 auf einem Plot platzieren soll):

df=data.frame(x=1:10,y=1:10)
panel=ggplot() + xlim(-1,11) + ylim(-1,11)
for (i in c(1:10)) {
    panel=panel+geom_point(aes(x=df$x[i],y=df$y[i]))
}
print(panel)

Dies erzeugt ein Diagramm mit einem Punkt, d. H. Dem für i = 10 Wenn ich @ gei einen anderen Wert (im Bereich von 1 bis 10) und wiederholen Sie dasprint (panel) Befehl dann wird dieser bestimmte Punkt geplottet.

Und wenn ich das tuei <- c (1:10) gefolgt vonprint (panel) dann werden alle zehn Punkte gezeichnet, als hätte ich die vektorisierte Version ausgegeben:

ggplot(aes(x=x,y=x),data=df)+geom_point()

Es scheint mir, dass hieri wird nur ausgewertet, wenn dasprint (panel) Befehl wird ausgegeben.

Ich bin darauf in einer sehr komplizierten Handlung gestoßen, in deri hat die Elemente einer Liste durchlaufen, und eine vektorisierte Version ist nicht praktikabel.

Also, die Frage ist sie: Gibt es eine Möglichkeit, ggplot zu zwingen, zu bewerteni für jeden Schritt in der Schleife?

,

Antworten auf die Frage(2)

Ihre Antwort auf die Frage