2011-05-17 3 views
10

En el siguiente ejemplo me gustaría ser capaz de controlar cuando voy a la siguiente trama por un uso de clic del ratón (o la entrada de teclado)Realización de una serie de parcelas que proceden de un clic

for (i in 1:5){ 
    plot(1:i) 
    Sys.sleep(1) 
    #add something here that requests mouse click to proceed 
} 

Es esto posible? Hay una configuración en el archivo de ayuda de X11() llamada 'clickToConfirm', pero no puedo averiguar qué hace eso.

También me sería útil para poder avanzar y retroceder por las tramas con las teclas de flecha. es posible?

Actualmente, si necesito ver muchas tramas, las imprimo en un gran archivo .pdf y las desplazo por todas ellas, pero eso es un poco engorroso.

Gracias

Tom

Respuesta

11

en R, que se hace mediante el establecimiento par(ask=TRUE). Pruebe el siguiente código, que muestra cómo restablecer el par al salir de la función:

op <- par(ask=TRUE) 
for (i in 1:5){ 
    plot(1:i) 
} 
par(op) 

Si desea mantener un historial de navegar a través, puede abrir una ventana y haga clic en recording en el menú History, o puede abrir la ventana usted mismo con la historia activada. Demostró en una función:

plot.fun <- function(){ 
    windows(record=TRUE) # opens a window and starts recording 
    op <- par(ask=TRUE) 
    on.exit(par(op)) 

    for (i in 1:5){ 
     plot(1:i) 
    } 
    windows.options(record=FALSE) #stops recording. 
} 
plot.fun() 

Esto sin embargo mantener todas las parcelas anteriores en la historia de la navegación, así, por lo que si se ejecuta este código 3 veces tendrá 15 parcelas en la historia trama. También tenga en cuenta que la ventana de diagrama abierto continuará grabando hasta que desactive la grabación en el menú.

Puede jugar con el historial de trazado, ya que tendrá una variable .SavedPlots que contiene el historial de trazado guardado. Se puede borrar usando el menú History > clear history en la ventana de trazado. Si desea borrar el historial de la consola, se puede piratear que por

.SavedPlots <- NULL 

Pero te aconsejo que no haga esto, como el cambio de la variable .SavedPlots puede causar R se bloquee.

Ver también ?windows y? RecordPlot para obtener un poco más de información. Pero a medida que te acercas al código interno de R, ten en cuenta que puedes tener un comportamiento bastante incómodo si empiezas a jugar con estas cosas.

+0

Eso es genial, gracias. Pero, ¿conoces la respuesta a la segunda parte de mi pregunta? ¿Puedes desplazarte hacia adelante y hacia atrás a través de tramas usando (por ejemplo) las teclas de flecha? Los diagramas –

4

Puede utilizar localizador - parcelas ahora cambian al hacer clic

for (i in 1:5){ 
    plot(1:i) 
    locator(1) 
} 
+0

cambian con dos clics para ser exactos. –

7

Para el desplazamiento de ida y vuelta entre las parcelas utilizando las teclas de flecha: depende de la interfaz de la plataforma/R.

  • de Windows: hay una función de grabación (ver Q5 de la R for Windows FAQ), que utiliza Pág/Av Pág
  • MacOS: debajo de la interfaz gráfica de usuario estándar, la ventana de cuarzo ha Manzana-izquierda y Apple-flecha de la derecha
  • bajo la interfaz estándar de Unix (sin interfaz gráfica de usuario), las cosas son más limitadas. Puedes usar RStudio (que tiene mucho zumbido en este momento) ... Pensé que JGR también tendría historial de tramas, pero no parece ...
+0

+1 por mencionar RStudio y las diferentes opciones en diferentes sistemas operativos –

Cuestiones relacionadas