ggplot的qplot不执行采购
假设我有两个源文件,第一个是example1.r
,第二个是example2.r
(如下所示)。
example1.r
plot(1:10,1:10)
example2.r
qplot(1:10,1:10)
当我来源example1.r时,绘制graphics。 但是,当我inputexample2.r时,它并不是。 这里有什么解决scheme?
(在example2.r中的qplot是ggplot2的函数)
更新 :
- .R文件:
source
的选项print.eval=TRUE
将导致评估结果的打印行为,如在交互式命令行中。
source("Script.R", print.eval=TRUE)
- .Rnw文件:
knitr
默认模拟交互式命令行wrt的行为。print
。 请注意,knitr
也可以被指定为Sweaving引擎,也适用于R包装短片。
这是我原来的答案。 但请注意,这种解决方法是恕我直言,现在完全过时了(它总是只对一个懒惰的小利好)。
这是着名的常见问题7.22:为什么格/格graphics不起作用? 。
对于像ggplot2或lattice这样的网格graphics,您需要打印graphics对象才能真正绘制graphics对象。
在命令行中交互式地自动完成。 在其他地方(文件内部来源,循环,函数,Sweave块),你需要明确地打印它。
print (qplot (1 : 10, 1 : 10))
或者,您可以重新定义qplot
进行打印:
qplot <- function (x, y = NULL, z = NULL, ...) { p <- ggplot2::qplot (x = x, y = y, z = z, ...) print (p) }
(这将轴标签更改为x和y)。
我使用这种方法在我想要在交互式会话中完全按照用户编写代码的小插曲中input代码。