Still puzzled about different graph

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Still puzzled about different graph

Martin Møller Skarbiniks Pedersen
Hi,

  Any ideas why I don't get the same graph out of p1 and p3?

 I have also posted it in the rstudio community without luck.
https://community.rstudio.com/t/ggplot2-geom-path-in-a-loop/102716/2

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

df <- data.frame(x = c(0,25,0,-25,0), y = c(25,0,-25,0,25))
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]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Still puzzled about different graph

Duncan Murdoch-2
On 24/04/2021 5:17 p.m., Martin Møller Skarbiniks Pedersen wrote:

> Hi,
>
>    Any ideas why I don't get the same graph out of p1 and p3?
>
>   I have also posted it in the rstudio community without luck.
> https://community.rstudio.com/t/ggplot2-geom-path-in-a-loop/102716/2
>
> 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
>
> df <- data.frame(x = c(0,25,0,-25,0), y = c(25,0,-25,0,25))
> 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
>

I don't know where it says this in the docs, but generally speaking
ggplot2 graphs don't evaluate everything until you print them.  So I'd
expect p3's two geom_path components to be identical, even though you
changed idx.

I think you can force evaluation before printing (using ggplot_build),
but I don't think you can modify the graph after that, so you'll need
two different variables instead of changing idx.

Duncan Murdoch

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: Still puzzled about different graph

Martin Møller Skarbiniks Pedersen
>
> I don't know where it says this in the docs, but generally speaking
> ggplot2 graphs don't evaluate everything until you print them.  So I'd
> expect p3's two geom_path components to be identical, even though you
> changed idx.
>
> I think you can force evaluation before printing (using ggplot_build),
> but I don't think you can modify the graph after that, so you'll need
> two different variables instead of changing idx.
>
> Duncan Murdoch


Thanks. Now I understand the problem and can find a solution.

Regards
Martin

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.