2013-04-04 12 views
-4

J'essaie de mettre en œuvre une application qui trace les données en temps réel. J'ai essayé du code que j'ai trouvé dans this question mais cela ne fonctionne pas. La figure trace un résultat avant la boucle for et un résultat lorsque la boucle for est terminéeTracé en temps réel interactif en python/pyqt

Ceci est exécuté dans Ubuntu, à partir de l'interpréteur Python.

Le code que je fais référence à:

import numpy as np 
import matplotlib.pyplot as plt 

plt.ion() 
mu, sigma = 100, 15 
fig = plt.figure() 
x = mu + sigma*np.random.randn(10000) 
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='green', alpha=0.75) 
for i in range(50): 
    x = mu + sigma*np.random.randn(10000) 
    n, bins = np.histogram(x, bins, normed=True) 
    for rect,h in zip(patches,n): 
     rect.set_height(h) 
    fig.canvas.draw() 

Répondre

0

Le problème se pose en raison du back-end. J'ai eu Qt4Agg et après avoir changé à TkAgg ça a marché .. aucune idée pourquoi Qt4Agg n'a pas la peine si ...

changer le back-end je devais éditer le fichier/etc/matplotlibrc

EDIT:

trouvé des informations sur Qt4Agg au lieu d'appeler draw() il devrait être mis en pause aussi longtemps que nécessaire en appelant pause(0.001) à la place, ici, il est mis en pause pendant 1ms.

info sur ce

https://github.com/matplotlib/matplotlib/issues/177