[R] ggplot2::geom_path() in a loop problems.

Martin Møller Skarbiniks Pedersen tr@xp|@yer @end|ng |rom gm@||@com
Fri Apr 23 23:20:21 CEST 2021


On Fri, 23 Apr 2021 at 20:11, Martin Møller Skarbiniks Pedersen <
traxplayer using gmail.com> wrote:
>
> Hi,
>
> I have some problems understanding how to use geom_path() inside a loop.
> I know the code below is a bit silly but it is just a MRE
> ( https://stackoverflow.com/help/minimal-reproducible-example )
>
> p1 looks like I expect however p2 only contains the last square. I
> expected p2 to be the same as p1.
>
> Any hints what is going on?
> Regards
> Martin
>
> library(ggplot2)
>
> df <- data.frame(x = c(0,25,0,-25,0), y = c(25,0,-25,0,25))
>
> p1 <- ggplot()
> p1 <- p1 + geom_path(data = df,aes(x = x/1, y = y/1))
> p1 <- p1 + geom_path(data = df,aes(x = x/2, y = y/2))
> p1 <- p1 + xlim(-30,30)
> p1 <- p1 + ylim(-30,30)
> p1
>
>
> p2 <- ggplot()
> for (idx in 1:2) {
>   p2 <- p2 + geom_path(data = df,aes(x = x/idx, y = y/idx))
> }
> p2 <- p2 + xlim(-30,30)
> p2 <- p2 + ylim(-30,30)
> p2


And the same strange effect if I write it like this:


p3 <- ggplot()
idx <- 1
p3 <- p3 + geom_path(data = df,aes(x = x/idx, y = y/idx))
idx <- 2
p3 <- p3 + geom_path(data = df,aes(x = x/idx, y = y/idx))
p3 <- p3 + xlim(-30,30)
p3 <- p3 + ylim(-30,30)
p3

	[[alternative HTML version deleted]]



More information about the R-help mailing list