ggplot 如果它在 for 循环内则不起作用,尽管它在它之外工作 [重复]

Posted

技术标签:

【中文标题】ggplot 如果它在 for 循环内则不起作用,尽管它在它之外工作 [重复]【英文标题】:ggplot does not work if it is inside a for loop although it works outside of it [duplicate] 【发布时间】:2013-03-18 16:18:59 【问题描述】:

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

这是我的代码

x=1:7
y=1:7
df = data.frame(x=x,y=y)
ggplot(df,aes(x,y))+geom_point()

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

for (i in 1:5) 
   ggplot(df,aes(x,y))+geom_point()

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

【问题讨论】:

【参考方案1】:

for 循环中时,您必须显式地 print 生成的 ggplot 对象:

for (i in 1:5)  
    print(ggplot(df,aes(x,y))+geom_point()) 

【讨论】:

您能否详细说明为什么会这样? @SydKerckhove 如果你仍然感兴趣,这里有一篇关于 ggplot 的优秀文章:data-imaginist.com/2017/Beneath-the-canvas 你如何在 ggsave 中使用它? @John myPlot = ggplot()..... 然后ggsave("filename", plot = myPlot) 这可能是题外话,但我不确定单独发布我的困惑是否有任何价值:建议的 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 + 的“不是管道”性质有关 ***.com/questions/38166708/…

以上是关于ggplot 如果它在 for 循环内则不起作用,尽管它在它之外工作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

用空格和冒号分割字符串,但如果在引号内则不分割

Django dict键,for循环中的值不起作用

在嵌套对象上使用 for 循环

如果我输入 return 关键字,为啥 JS for 循环不起作用? [复制]

如果全局不起作用,在Python中访问for循环之外的变量?

为啥 MPI_SEND 在我的 for 循环中不起作用?如果明确说明它工作正常