我正在使用一个简单的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() } 它不再工作了,我错过了什么?
在 for 循环中,你必须明确地调用 print 函数来打印生成的 ggplot 对象 :for (i in 1:5) { print(ggplot(df,aes(x,y))+geom_point()) }
myPlot = ggplot().....
然后ggsave("filename", plot = myPlot)
可以翻译为:先定义一个变量名为myPlot
的ggplot()
对象,然后使用ggsave("filename", plot = myPlot)
将其保存为文件。 - Glubbdrubbprint(ggplot(df,aes(x,y))+geom_point())
能够正常运行,但ggplot(df,aes(x,y))+geom_point() %>% print()
却不能。然而,(ggplot(df,aes(x,y))+geom_point()) %>% print()
可以。这可能与 ggplot 的 "+" 不是管道符的性质有关,可以在此处了解更多信息:https://dev59.com/c1oT5IYBdhLWcg3wxx7g - Josh