갑자기 X11에 보낸 rpy로 만든 플롯은 갑자기 닫습니까?
문제
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가 null이 아닌 ListVector를 반환하기 때문에 플롯 할 뭔가가 있음을 알고 있습니다.
해결책
add
input() # for Python3
# raw_input() # for Python2
.
사용자가 Enter 키를 누를 때까지 프로그램이 종료되지 않도록 스크립트의 끝까지.
다른 팁
Zack이 대화식 그래픽 장치에서 dev.off()
를 호출하면 장치가 장치가 닫힐 수 있습니다 (그리고 그것이 사라지는 내용이 표시되는 것).반면에, 플롯이 점검되기 전에 대화식이 아닌 장치를 닫는 데 필요한 비 대화식 장치가 주로 필요합니다 ( 그래픽 장치에 대한 RPY2의 문서 ).
Python 코드가 대화식 Python 세션의 일부가 아닌 독립 실행 형 프로그램 / 스크립트로 호출되었음을 추측하고 있습니다.즉, 쉘에서 python myscript.py
(myscript.py
의 코드가 위의 코드의 내용)가 있음을 의심합니다.스크립트가 끝나면 임베디드 R은 분명히 종료되어 대화 형 플롯을 사용해야합니다.이것은 잭이 생각하고있는 것도있을 것입니다.Python Console python -i myscript.py
에서 Python Console import sys; sys.exit(0)
를 시도하여 Python을 종료하는 것을 확인하려면 r 대화 형 장치를 닫는 것을 의미합니다.