更新:感谢Joshua的评论,我意识到问题不是在函数内部,而是在脚本中。所以我编辑了这个问题并提供了自己的答案。
当我以交互方式使用plot.xts()
时,会弹出一个图形窗口。我刚从一个函数内部尝试过它(我正在对一个单元测试进行故障排除并想要一些视觉帮助)但是没有出现。啊哈,我说,我知道诀窍,只需使用print
。
但是print(plot.xts(x))
仍然没有显示图表,而是打印我的xts对象!即它与print(x)
完全相同。
我用来运行单元测试的脚本是:
#!/usr/bin/Rscript --slave
library('RUnit')
options(warn=2) #Turn warnings into errors
#By naming the files runit.*.R, and naming the functions test*(), we can use
# all the defaults to defineTestSuite().
#NOTE: they have a weird default random number generator, so changed here
# to match the R defaults instead.
test.suite=defineTestSuite('tests',dirs=file.path('tests'),
rngKind = "Mersenne-Twister", rngNormalKind = "Inversion")
test.result <- runTestSuite(test.suite)
printTextProtocol(test.result)
答案 0 :(得分:2)
下面的脚本做了两件事:
绘制到设备文件,就像在无头设置(例如网络服务器)中一样,
绘制屏幕设备,我使用x11()
,但您可以使用win()
。
Rscript
没有限制。这与xts
无关,因为您可以轻松地绘制xts
对象。
#!/usr/bin/Rscript
set.seed(42)
x <- cumsum(rnorm(100))
png("/tmp/darren.png")
plot(x)
dev.off()
x11()
plot(x)
Sys.sleep(3) # could wait for key pressed or ...
答案 1 :(得分:0)
使用RScript时不能使用图形(或但是RScript仍然只是R,所以当你想添加一些交互式的东西时(例如用于故障排除)启动R,然后输入:readline
等输入函数)。
source('run_tests.R')
以这种方式运行时,这样的一行显示图表:
plot(x$High);cat("Press a key");readline()
直接从命令行运行./run_tests.R
时,该行被静静地忽略。