1

我正在使用 RPy2 制作一些情节。绘图显示,但 X11 窗口立即消失。

我输入的内容如下,其中CCFS是一个数据矩阵

 import rpy2.robjects as robjects
 r = robjects.r

 pca = r.princomp(CCFS)
 r.plot(pca,main="Eigenvalues")
 r.biplot(pca,main="biplot")
 r['dev.off']() #*EDIT* the problem persists even if I remove this line.

我没有包括一些东西吗?我知道有一些东西要绘制,因为 princomp 返回一个不为空的 ListVector。

4

2 回答 2

5

添加

input()         # for Python3
# raw_input()   # for Python2

到脚本的末尾,以防止程序在用户按 Enter 之前结束。

于 2012-09-29T19:34:17.443 回答
3

正如 Zack 指出的那样,调用dev.off()交互式图形设备只会导致设备关闭(并且显示的内容会消失)。另一方面,在检查绘图之前通常需要关闭非交互式设备(参见rpy2's documentation on graphics devices)。

我猜您的 Python 代码被称为独立程序/脚本,而不是交互式 Python 会话的一部分。换句话说,我怀疑您python myscript.py在外壳中有类似的东西(myscript.py上面是您的代码的内容);当脚本结束时,嵌入式 R 显然终止,并带有交互式绘图。这可能也是 Zack 的想法。尝试python -i myscript.py,然后在 Python 控制台import sys; sys.exit(0)中查看退出 Python 意味着关闭 R 交互设备。

于 2012-09-29T20:19:21.300 回答