2011-10-20 9 views
5

Me gusta mucho más, es realmente genial para guiones utilizando R. Pero no sé cómo usar un dispositivo gráfico externo a la gnuplot (por ejemplo, usando Octave). Soy capaz de producir el gráfico deseado, pero tengo que usar Sys.sleep y no quiero hacerlo, porque quiero cerrarlo yo mismo de una manera interactiva o mejor continuar el script sin cerrar el dispositivo.Dispositivo gráfico externo para littler o Rscript

Hasta el momento esto es lo que mi código es el siguiente:

#!/usr/bin/env r -t 


suppressMessages(require(Cairo)) 

CairoX11() 
plot(rnorm(1000), pch = 19) 
Sys.sleep(50) 

# some code without closing the graphics window 

Mi pregunta es: ¿Sabe usted una forma de lograr eso?

Cualquier indicio, documento, enlace o código será apreciado

Respuesta

2

Además de la sugerencia de John, podría ser explícito e invocar uno de los paquetes de la GUI para mostrar un nuevo 'marco' (o 'ventana') que luego muestra la trama. Eso permanecerá en la pantalla hasta que el usuario (o un evento externo) finalice esa ventana.

El paquete tcltk se puede utilizar junto con el paquete tkrplot; este es el más portátil. RGtk2 es más moderno pero más difícil de instalar/usar en Windows ya que Gtk2 no es exactamente nativo allí. Hay más --- busque R GUI aquí y en otros lugares en los intertubos.

+0

Antes que nada quisiera agradecerle a usted (y a Jeffrey Horner) por ser más liviano, es realmente útil y también más fácil de usar que Rscript (incluso hago algún administrador de sistema en mi kubuntu con R ahora !!). Tienes razón sobre el marco externo, hasta ahora probé tkrplot, la nueva interfaz r qt (qtbase y qtpaint) e incluso gnuplot (a través de TeachingDemos) y también finalmente encontré una manera de mantener mis gráficos R sin usar Sys.sleep (I use el localizador en su lugar y haga clic con el botón derecho para continuar el script). Trataré de encontrar una solución más elegante al problema. Gracias de nuevo – dickoa

+0

El placer de ser de ayuda. Si tienes una pequeña demostración sucinta que quizás solo incluya tcltk y tkrplot, me encantaría agregar eso al paquete (y por supuesto darte crédito completo, etc.). Lo que ha preguntado aquí es un problema relevante, y deberíamos enviar una solución de muestra. –

+0

Excelente idea, estaré encantado de enviarle un código reproducible o publicarlo aquí cuando termine este trabajo. – dickoa

2

No sé de una manera de hacer eso, ya que estos son deliberadamente formas no -interactive de funcionamiento de R. me acaba de ejecutar su script en una sesión R interactiva con par(ask=T). De esta forma, el usuario se detendrá entre cifras, como las demostraciones en la documentación de R.

+0

gracias por su sugerencia ... pero para mi propósito no puedo usar una sesión R interactiva ... – dickoa

Cuestiones relacionadas