我发现如果ggplot 是函数中的最后一个东西,那么调用该函数将导致ggplot按预期创建一个图。
但是如果ggplot不是函数中的最后一个 - 比如它后跟一个赋值(比如x< -t)或者一个return语句(比如return(x))那么ggplot就不会创建一个图。
这方面的工作是什么?
P.S。请发表评论,解释如何创建用于表示代码的内联灰色背景:-)
答案 0 :(得分:4)
对plot
对象使用ggplot
。
func1 <- function() {
require(ggplot2)
ggplot(mtcars, aes(mpg, wt)) + geom_point()
}
func1() # this creates plot
func2 <- function() {
require(ggplot2)
ggplot(mtcars, aes(mpg, wt)) + geom_point()
cat("hey\n")
}
func2() # this does not create plot
func3 <- function() {
require(ggplot2)
plot(ggplot(mtcars, aes(mpg, wt)) + geom_point())
cat("hey\n")
}
func3() # use plot to make sure your plot is displayed
顺便说一下,func1
创建的情节不是因为ggplot
是函数中最后要做的事情。它创建绘图,因为函数返回ggplot
对象,代码func1()
调用对象的print
方法。
要查看此内容,如果执行a <- func1()
,则不会创建绘图,而是存储在a
变量中。
注意:您可以使用print
insted。 print
和plot
与ggplot
对象相同。