2

更新:感谢 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)
4

2 回答 2

2

下面的脚本做了两件事:

  • 绘制到设备文件,就像在无头设置(如网络服务器)中一样,

  • 绘制一个屏幕设备,我使用x11()但你可以使用win().

没有任何限制Rscriptxts这与您可以轻松绘制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 ...
于 2013-05-02T00:25:43.303 回答
0

readline使用 RScript 时不能使用图形(或类似的输入函数)。然而,RScript 仍然只是 R,所以当你想添加一些交互式的东西(例如用于故障排除)时,请启动 R,然后键入:

source('run_tests.R')

以这种方式运行时,如下所示的线显示图表:

plot(x$High);cat("Press a key");readline()

当直接从命令行运行时,./run_tests.R该行会被忽略。

于 2013-05-01T23:51:38.353 回答