Pregunta

Estoy usando RPy2 para hacer algunos gráficos.La trama aparece pero la ventana X11 desaparece inmediatamente.

Todo lo que estoy escribiendo es lo siguiente, donde CCFS es una matriz de datos

 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.

¿Estoy dejando de incluir algo?Sé que hay algo que trazar porque princomp devuelve un ListVector que no es nulo.

¿Fue útil?

Solución

Agregar

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

hasta el final del script para evitar que el programa termine hasta que el usuario presione ENTER.

Otros consejos

Como Zack lo señaló llamando dev.off() en dispositivos gráficos interactivos simplemente hará que el dispositivo se cierre (y lo que muestra desaparezca).Por otro lado, la mayoría de las veces es necesario cerrar los dispositivos no interactivos antes de poder comprobar el trazado (consulte Documentación de rpy2 en dispositivos gráficos.).

Supongo que su código Python se llama como un programa/script independiente en lugar de ser parte de una sesión interactiva de Python.En otras palabras, sospecho que estás teniendo algo como python myscript.py en un caparazón (el contenido de myscript.py siendo su código arriba);cuando el guión termina, la R incrustada obviamente termina, llevándose consigo la trama interactiva.Probablemente esto también sea lo que Zack esté pensando.Intentar python -i myscript.py, y luego una vez en la consola de Python import sys; sys.exit(0) Veremos que salir de Python significa cerrar los dispositivos interactivos de R.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top