Parcelas fez com rpy enviado para o X11 de repente?
Pergunta
Eu estou usando RPy2 para fazer algumas parcelas.A trama mostra, mas o X11 janela desaparece imediatamente.
Tudo o que eu estou escrevendo é o seguinte, onde CCF é uma matriz de dados
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.
Am eu não incluir algo?Eu sei que há algo a trama porque princomp retorna um ListVector que não é nulo.
Solução
Adicionar
input() # for Python3
# raw_input() # for Python2
ao final do script para impedir que o programa termina quando o usuário pressiona Enter.
Outras dicas
Como Zack apontou-chamada dev.off()
no gráfico interactivo dispositivos só vai fazer com que o dispositivo para fechar (e o que apresenta a desaparecer).Por outro lado, o fechamento não-interativo dispositivos é mais necessário, antes de a trama pode ser verificado (Ver rpy2 da documentação gráfica de dispositivos).
Eu estou supondo que seu código Python é chamado como um programa standalone (independente) / script, ao invés de incluir parte de uma interativo do Python sessão.Em outras palavras, eu estou achando que você está tendo algo como python myscript.py
em um shell (o conteúdo de myscript.py
sendo o código acima);quando o script termina o embedded R, obviamente, é finalizado, levando com ele o interativo enredo.Esta é provável também que Zack está pensando.Tente python -i myscript.py
, e , em seguida, uma vez no console Python import sys; sys.exit(0)
para ver de que sair do Python meios de fechamento de R dispositivos interativos.