9 votos

R: actualización de un gráfico de forma dinámica

Esta es una visualización de datos en cuestión. Tengo una base de datos que contiene algunos datos que es constantemente revisado (actualización en línea). ¿Cuál es la mejor manera en R para actualizar un gráfico de cada digamos 5 o 10 segundos. (sin conspirar de nuevo el todo cosa es posible)?

fRed

10voto

ESRogs Puntos 1381

Suponiendo que desee actualizar R windows() o x11() gráfico, puede utilizar funciones como points() y lines() a añadir nuevos puntos o extender las líneas en un gráfico sin necesidad de redibujar; sin embargo, tenga en cuenta que esto no va a cambiar los ejes para dar cabida a los puntos que pueden ir fuera de la vista. En general suele ser una buena idea para hacer el trazado en sí instantáneo, por ejemplo, por el movimiento de los esfuerzos de computación en la fabricación de algunos reducido medio de representación que pueden ser representados rápidamente, como el mapa de densidad en lugar del gran número de puntos o reducir la resolución de los gráficos de línea (esto puede ser complejo, sin embargo).

Para la celebración de sesión de R para un cierto tiempo sin ocupado esperar, el uso de Sys.sleep().

3voto

DavLink Puntos 101

Para la visualización sin conexión, puede generar archivos PNG y convertir a GIF animado utilizando ImageMagick. Yo lo he utilizado para la demostración (este redibujar todos los datos, a pesar de que):

source(url("http://aliquote.org/pub/spin_plot.R"))
dd <- replicate(3, rnorm(100))
spin.plot(dd)

Esto genera varios archivos PNG, con el prefijo fig. Luego, en un*x shell,

convert -delay 20 -loop 0 fig*.png sequence.gif

da esta animación (que está inspirado en el Moderno Aplicado Biostatistical Métodos de uso de S-Plus, S. Selvin, 1998):

alt text

Otra opción que se ve mucho más prometedor es confiar en la animación paquete. Hay un ejemplo con una Ventana móvil de Auto-Regresión que debería dejarte ir comenzó con.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X