2009-12-21 15 views
7

Quiero actualizar dinámicamente el diagrama de dispersión en función de los datos del eje y recibidos de una conexión de socket. Utilicé python matplot lib en modo interactivo para hacer esto, pero durante la actualización dinámica si muevo la ventana a una ubicación diferente o minimizo la ventana, la actualización de la gráfica se detiene abruptamente. ¿Como hacer esto?Modo interactivo en matplotlib

He adjuntado un ejemplo de código de actualización dinámica utilizado aquí y el mismo problema aparece aquí también.

import matplotlib.pyplot as plt 
import random 
import time 
items = [25.5,26.7,23.4,22.5,20,13.4,15.6,-12,-16,20] 
x = [1,2,3,4,5,6,7,8,9,10] 

plt.ion() # Interactive on 

for i in range(1,100): 
    plt.title('graph plotting') 
    plt.ylabel('temperature') 
    plt.xlabel('time') 
    random.shuffle(items) 
    plt.plot(x,items,'ob-') 
    plt.axis([0, 10, -40, 40]) 
    plt.draw() 
    #time.sleep(2) 
    plt.clf() 
    plt.close() 

Respuesta

1

Para que esto funcione, es necesario tener un bucle principal para la gestión de eventos, y su propio controlador de eventos para volver a trazar la trama cuando la ventana cambia de tamaño o se actualiza.

Encontrará muchos ejemplos para esto en la web o en los tutoriales.

Creo que esto se maneja mejor mediante el uso de un conjunto de herramientas UI (por ejemplo, wxPython), sin utilizar el modo interactivo matplotlib. Tuve a similar question en el pasado y obtuve algunas buenas respuestas.

+0

Gracias por la respuesta, me buscaron para el manejo de los ejemplos de eventos, pero no pudieron encontrarlo (soy novato en Python), puede usted por favor envíe me enlace a al menos un ejemplo de ello. – Sharath

+0

@Sharath: Encontrarás enlaces en la respuesta a la que me he vinculado. – Ber

+0

@Ber: me refería al manejo de eventos en ejemplos de mapeo y no a wxPython, como cuáles son los eventos que obtengo para minimizar la ventana, el movimiento a una ubicación diferente, etc. Gracias de antemano – Sharath

3

This page contiene un par de ejemplos de diagramas dinámicos con matplotlib y wxPython. Y here es una versión con PyQt.

Cuestiones relacionadas