从函数调用levelplot

时间:2013-12-03 17:58:58

标签: r lattice

在函数中使用levelplot非常奇怪:

> foo <- function() { require(lattice); levelplot(matrix(rnorm(100),10,10)) }
> bar <- function() { require(lattice); levelplot(matrix(rnorm(100),10,10)); return(1) }
> foo()  ## graph gets generated
Loading required package: lattice
> graphics.off()
> bar()  ## NO GRAPH GETS GENERATED
[1] 1

foo()按预期工作,bar()不生成任何绘图。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,该函数返回最后生成的对象。在函数foo中,这是情节。在功能bar中,它是1

如果要生成绘图返回另一个对象,则必须使用print创建绘图。

bar <- function() { 
         require(lattice); 
         print(levelplot(matrix(rnorm(100),10,10))); 
         return(1) }

当您致电bar()时,将创建情节并返回1