R如果ggplot不能在函数中持续,则不会绘制

时间:2016-11-30 00:43:54

标签: r function ggplot2

我发现如果ggplot 函数中的最后一个东西,那么调用该函数将导致ggplot按预期创建一个图。

但是如果ggplot不是函数中的最后一个 - 比如它后跟一个赋值(比如x< -t)或者一个return语句(比如return(x))那么ggplot就不会创建一个图。

这方面的工作是什么?

P.S。请发表评论,解释如何创建用于表示代码的内联灰色背景:-)

1 个答案:

答案 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。 printplotggplot对象相同。