我已经使用 rpy2 绘制了一个图表。我正在使用 Eclipse。当我运行代码时,情节只会闪烁 1 秒然后消失。如何使图表保持不变?我的代码是:
#!/usr/bin/python
import rpy2.robjects as robjects
r = robjects.r
r('x = c(1, 2, 3)')
r('y = c(6, 7, 8)')
r('plot(x, y)')
终止 R 进程会关闭打开的交互式绘图窗口......这就是(Python)脚本末尾发生的事情。
如果你必须让你的 Python 进程保持活跃(因为嵌入式 R 依赖于它),有几种策略。最简单的可能是在最后添加:
import time
while True:
time.sleep(1)
您可以使用 Rstudio,这确实会立即杀死窗口。或者,使用例如将绘图转储到文件中png
。
使用 手动启动程序python your_program.py
。它必须是使用eclipse的抵押品
from rpy2.robjects.packages import importr
import rpy2.robjects as robjects
grdevices = importr('grDevices')
def mainloop():
while True:
if isinstance(grdevices.dev_list(), type(robjects.NULL)):
break
robjects.r('x = c(1, 2, 3)')
robjects.r('y = c(6, 7, 8)')
robjects.r('plot(x, y)')
mainloop()