Graphics 如何确定函数是否生成图形
有没有办法确定函数是否在R中生成图形 例如,如果我们有函数f和g 我想我能跑Graphics 如何确定函数是否生成图形,graphics,r,Graphics,R,有没有办法确定函数是否在R中生成图形 例如,如果我们有函数f和g 我想我能跑 createFigure(f(x,y))#Returns TRUE createFigure(g(x,y))#Returns FALSE 如果出于您的目的,可以先关闭所有设备,然后再进行检查,那就多谢了。设备会很好,因为打印命令会生成一个新设备。但是lines()和points()将是例外 事实上,这表明这个问题不仅有正确或错误的答案,而且取决于条件。有些函数即使没有打开的设备也会绘制一些东西,而有些函数如果绘制了其
createFigure(f(x,y))#Returns TRUE
createFigure(g(x,y))#Returns FALSE
如果出于您的目的,可以先关闭所有设备,然后再进行检查,那就多谢了。设备会很好,因为打印命令会生成一个新设备。但是lines()和points()将是例外
事实上,这表明这个问题不仅有正确或错误的答案,而且取决于条件。有些函数即使没有打开的设备也会绘制一些东西,而有些函数如果绘制了其他东西也会绘制一些东西。在这种情况下,您想做什么?
makes\u plot我有一个调用函数的swave文档。如果创建了图形,我会将其包含在Tex文件中。函数来自学生。顺便说一句,科林,我很好奇这样一个函数如何有用?最好是学生提交一些函数作为课程作业。它们的一个函数应该生成一个图形。然后,我使用Swave运行他们的课程作业,并检查其正确性。但是,如果函数不正确并且没有生成任何图形,我就无法编译生成的tex file.IMHO,这是SO的R部分中最被低估的问题。谢谢你的邀请,@hadley,谢谢你帮我度过了这一天!=)+1可能将其包含在ggplot2中,以便随时可用?很好!(min(length(comment))非常好的Hadley…这并不是说,对于lines()、points()、grid()和axis(),当它们不用于实际制作绘图时,也会返回true,只添加到一个。可能对于所有修改绘图的命令都是如此。
makes_plot <- function(x) {
before <- .Internal(getSnapshot())
force(x)
after <- .Internal(getSnapshot())
!identical(before, after)
}
makes_plot(mean(1:10))
makes_plot(plot(1:10))
makes_plot <- function(x) {
before <- .Internal(getSnapshot())
force(x)
after <- .Internal(getSnapshot())
!identical(before, after)
}
makes_plot(mean(1:10))
makes_plot(plot(1:10))