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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top