R:ggplot如果在for循环中,它不起作用,尽管它在它之外工作

Rem*_*i.b 105 for-loop r ggplot2

我正在使用一个简单的ggplot函数,它在循环外工作正常,但即使迭代值不干扰ggplot函数也不在内部.为什么会这样?

这是我的代码

x=1:7
y=1:7
df = data.frame(x=x,y=y)
ggplot(df,aes(x,y))+geom_point()
Run Code Online (Sandbox Code Playgroud)

有用 !但是如果ggplot在for循环中...

for (i in 1:5) {
   ggplot(df,aes(x,y))+geom_point()
}
Run Code Online (Sandbox Code Playgroud)

......它不再起作用了!我错过了什么?

谢谢

jub*_*uba 197

for循环中,您必须明确print 您的结果ggplot对象:

for (i in 1:5) { 
    print(ggplot(df,aes(x,y))+geom_point()) 
}
Run Code Online (Sandbox Code Playgroud)

  • 你能详细说明为什么会这样吗? (3认同)
  • @SydKerckhove如果您仍然感兴趣,这里有一篇关于ggplot的优秀文章:http://www.data-imaginist.com/2017/Beneath-the-canvas/ (3认同)
  • 这可能不是主题,但我不确定独立发布我的困惑是否有任何价值:建议的 `print(ggplot(df,aes(x,y))+geom_point())` 有效,但是 `ggplot (df,aes(x,y))+geom_point() %>% print()` 不会。但是, `(ggplot(df,aes(x,y))+geom_point()) %>% print()` 确实有效。这可能与此处描述的 ggplot `+` 的“不是管道”性质有关 /sf/ask/2671669591/ Between-ggplot2-and-other-function-r (3认同)
  • 你如何使用ggsave? (2认同)
  • @Juba.感谢您的回答.虽然它已经过了4年,但我很感谢你今天帮助我的贡献.祝你今天愉快. (2认同)
  • @John`myPlot = ggplot().....`然后`ggsave(“文件名”,plot = myPlot)` (2认同)