R包装格赢得';如果使用source()运行,则不打印

R包装格赢得';如果使用source()运行,则不打印,r,graphics,plot,lattice,R,Graphics,Plot,Lattice,我开始使用latticegraphic包,但遇到了一个问题。我希望有人能帮助我。 我想用相应的函数绘制直方图 这是文件foo.r: library("lattice") data <- data.frame(c(1:2),c(2:3)) colnames(data) <- c("RT", "Type") pdf("/tmp/baz.pdf") histogram( ~ RT | factor(Type), data = data) dev.off() 然后运行R--vanill

我开始使用
lattice
graphic包,但遇到了一个问题。我希望有人能帮助我。 我想用相应的函数绘制直方图

这是文件
foo.r

library("lattice")

data <- data.frame(c(1:2),c(2:3))
colnames(data) <- c("RT", "Type")

pdf("/tmp/baz.pdf")
histogram( ~ RT | factor(Type), data = data)
dev.off()
然后运行
R--vanilla
代码生成错误的pdf文件。 现在我发现
source(“bar”,echo=TRUE)
解决了这个问题。这是怎么回事?这是一个错误还是我遗漏了什么

我将R版本2.13.1(2011-07-08)与lattice_0.19-30一起使用,它位于--您需要
print()
围绕您调用的lattice函数:

7.22为什么晶格/网格图形不起作用

最可能的原因是您忘记告诉R显示 图表晶格函数,如xyplot()创建图形对象,但 不要显示它(ggplot2图形和网格也是如此) S-Plus中的图形)。graph对象的print()方法生成 实际显示。当您以交互方式在 命令行中,结果将自动打印,但在source()或 在您自己的函数中,需要显式的print()语句

案例

  • 可视化.r
    • 调用
      plot2this.r
      • 调用
        ggplot2
        并返回
        p
        对象
  • 这里是函数
    plot2this.r
    中从
    return(p)
    return(print(p))
    的修正

    初始
    plot2this.r

    p <- ggplot(dat.m, aes(x = Vars, y = value, fill=variable)) 
    return(p)
    

    哇,太快了!我花了很多时间才发现真正的问题是什么。谢谢!这是有效的:
    。。。打印(直方图(~RT |因子(类型),数据=数据))…
    这是否适用于
    图形
    软件包中的
    plot()
    函数?我看到了类似的行为,但这似乎并不能解决它…啊
    plot
    在没有print语句的情况下工作,但是在打印之前需要使用dev.new()或类似的语句。我在这里添加了一个示例,因为我认为答案是存根。
    p <- ggplot(dat.m, aes(x = Vars, y = value, fill=variable)) 
    return(p)
    
    p <- ggplot(dat.m, aes(x = Vars, y = value, fill=variable)) 
    return(print(p))