使用源在R中绘制线框图
我有一个R脚本,它构建一个数据帧使用源在R中绘制线框图,r,plot,R,Plot,我有一个R脚本,它构建一个数据帧DF,然后使用source调用目录rscript中的每个脚本来生成绘图。所以一个典型的执行看起来像 pdf('output.pdf') source('Rscripts/make_plot.r') dev.off() 其中rscript/make_plot.r可能包含以下内容 plot(DF$x, DF$y) 到目前为止,这一策略效果很好(尽管我不知道这是否是推荐的方法)。然而,我现在遇到了麻烦。我的一个RScript使用线框而不是绘图进行绘图,因此出于某种原
DF
,然后使用source
调用目录rscript
中的每个脚本来生成绘图。所以一个典型的执行看起来像
pdf('output.pdf')
source('Rscripts/make_plot.r')
dev.off()
其中rscript/make_plot.r
可能包含以下内容
plot(DF$x, DF$y)
到目前为止,这一策略效果很好(尽管我不知道这是否是推荐的方法)。然而,我现在遇到了麻烦。我的一个RScript使用线框
而不是绘图
进行绘图,因此出于某种原因,在该文件上调用源代码
不会生成绘图。在make\u plot.r
中可以找到重现该问题的小示例:
library("lattice")
N <- 10
s <- seq(0, 1, 0.1)
wireframe(z~x*y, data=data.frame(x=rep(s, each=N), y=rep(s, N), z=rep(s, N)))
库(“晶格”)
N这在
为什么晶格/网格图形不起作用?
最可能的原因是您忘记告诉R显示图形。xyplot()等晶格函数创建图形对象,但不显示它(ggplot2图形和S-PLUS中的网格图形也是如此)。graph对象的print()方法生成实际显示。当您在命令行中以交互方式使用这些函数时,结果将自动打印,但在source()或您自己的函数中,您将需要显式的print()语句
由于wireframe()
是一个晶格函数,因此需要将其包装在print()