Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite
Anaconda.
Pour faire du graphique j'utilise le module matplotlib.pyplot.
Ce que je voudrais faire et que je n'arrive pas à faire serait de
générer progressivement un graphe en fonction de résultats de calculs et
qu'on voit le graphe évoluer en temps réel.
Exemple avec un calcul de pi par monte-carlo, la figure apparaît en
blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
import matplotlib.pyplot as plt
import numpy as np
#fonction aleatoire : renvoie un nombre compris entre a et b
def alea(a,b):
return (b-a)*random()+a
plt.axis([-1.5,1.5,-1.5,1.5])
# Tracé du cercle de rayon 1
x=np.linspace(0,2*np.pi,400)
plt.plot(np.sin(x),np.cos(x),color='b',label='Cercle')
# Tracé du carré de coté 2
plt.plot([1,1],[1,-1],linewidth=2.0,color='r')
plt.plot([1,-1],[-1,-1],linewidth=2.0,color='r')
plt.plot([-1,-1],[-1,1],linewidth=2.0,color='r')
plt.plot([-1,1],[1,1],linewidth=2.0,color='r')
plt.grid()
plt.show()
total = 50000
cont = 0
for i in range(1,total+1):
x=alea(-1,1)
y=alea(-1,1)
if (x**2+y**2)**0.5<=1:
cont = cont+1
plt.plot(x,y,'go')
plt.show()
else:
plt.plot(x,y,'bo')
plt.show()
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas
Le 04/12/2013 09:52, Youri Ligotmi a écrit :
Bonjour,
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite Anaconda. Pour faire du graphique j'utilise le module matplotlib.pyplot. Ce que je voudrais faire et que je n'arrive pas à faire serait de générer progressivement un graphe en fonction de résultats de calculs et qu'on voit le graphe évoluer en temps réel. Exemple avec un calcul de pi par monte-carlo, la figure apparaît en blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
import matplotlib.pyplot as plt import numpy as np
#fonction aleatoire : renvoie un nombre compris entre a et b def alea(a,b): return (b-a)*random()+a
plt.axis([-1.5,1.5,-1.5,1.5]) # Tracé du cercle de rayon 1 x=np.linspace(0,2*np.pi,400) plt.plot(np.sin(x),np.cos(x),color='b',label='Cercle') # Tracé du carré de coté 2 plt.plot([1,1],[1,-1],linewidth=2.0,color='r') plt.plot([1,-1],[-1,-1],linewidth=2.0,color='r') plt.plot([-1,-1],[-1,1],linewidth=2.0,color='r') plt.plot([-1,1],[1,1],linewidth=2.0,color='r') plt.grid() plt.show() total = 50000 cont = 0 for i in range(1,total+1): x=alea(-1,1) y=alea(-1,1) if (x**2+y**2)**0.5<=1: cont = cont+1 plt.plot(x,y,'go') plt.show() else: plt.plot(x,y,'bo') plt.show()
print 4.*cont/total
Merci d'avance
YL
Essaie en multi thread. Un thread pour les calculs et un thread pour l'affichage.
Le 04/12/2013 09:52, Youri Ligotmi a écrit :
Bonjour,
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite
Anaconda.
Pour faire du graphique j'utilise le module matplotlib.pyplot.
Ce que je voudrais faire et que je n'arrive pas à faire serait de
générer progressivement un graphe en fonction de résultats de calculs et
qu'on voit le graphe évoluer en temps réel.
Exemple avec un calcul de pi par monte-carlo, la figure apparaît en
blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
import matplotlib.pyplot as plt
import numpy as np
#fonction aleatoire : renvoie un nombre compris entre a et b
def alea(a,b):
return (b-a)*random()+a
plt.axis([-1.5,1.5,-1.5,1.5])
# Tracé du cercle de rayon 1
x=np.linspace(0,2*np.pi,400)
plt.plot(np.sin(x),np.cos(x),color='b',label='Cercle')
# Tracé du carré de coté 2
plt.plot([1,1],[1,-1],linewidth=2.0,color='r')
plt.plot([1,-1],[-1,-1],linewidth=2.0,color='r')
plt.plot([-1,-1],[-1,1],linewidth=2.0,color='r')
plt.plot([-1,1],[1,1],linewidth=2.0,color='r')
plt.grid()
plt.show()
total = 50000
cont = 0
for i in range(1,total+1):
x=alea(-1,1)
y=alea(-1,1)
if (x**2+y**2)**0.5<=1:
cont = cont+1
plt.plot(x,y,'go')
plt.show()
else:
plt.plot(x,y,'bo')
plt.show()
print 4.*cont/total
Merci d'avance
YL
Essaie en multi thread. Un thread pour les calculs et un thread pour
l'affichage.
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite Anaconda. Pour faire du graphique j'utilise le module matplotlib.pyplot. Ce que je voudrais faire et que je n'arrive pas à faire serait de générer progressivement un graphe en fonction de résultats de calculs et qu'on voit le graphe évoluer en temps réel. Exemple avec un calcul de pi par monte-carlo, la figure apparaît en blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
import matplotlib.pyplot as plt import numpy as np
#fonction aleatoire : renvoie un nombre compris entre a et b def alea(a,b): return (b-a)*random()+a
plt.axis([-1.5,1.5,-1.5,1.5]) # Tracé du cercle de rayon 1 x=np.linspace(0,2*np.pi,400) plt.plot(np.sin(x),np.cos(x),color='b',label='Cercle') # Tracé du carré de coté 2 plt.plot([1,1],[1,-1],linewidth=2.0,color='r') plt.plot([1,-1],[-1,-1],linewidth=2.0,color='r') plt.plot([-1,-1],[-1,1],linewidth=2.0,color='r') plt.plot([-1,1],[1,1],linewidth=2.0,color='r') plt.grid() plt.show() total = 50000 cont = 0 for i in range(1,total+1): x=alea(-1,1) y=alea(-1,1) if (x**2+y**2)**0.5<=1: cont = cont+1 plt.plot(x,y,'go') plt.show() else: plt.plot(x,y,'bo') plt.show()
print 4.*cont/total
Merci d'avance
YL
Essaie en multi thread. Un thread pour les calculs et un thread pour l'affichage.
Damien Wyart
* Youri Ligotmi in fr.comp.lang.python:
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite Anaconda. Pour faire du graphique j'utilise le module matplotlib.pyplot.
* Youri Ligotmi <yl@free.fr.invalid> in fr.comp.lang.python:
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite
Anaconda. Pour faire du graphique j'utilise le module
matplotlib.pyplot.
Pyqtgraph serait peut-être plus adapté pour des graphiques qui doivent
apparaître progressivement. On peut trouver des informations sur la page
suivante :
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTLABGraphMath
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite Anaconda. Pour faire du graphique j'utilise le module matplotlib.pyplot. Ce que je voudrais faire et que je n'arrive pas à faire serait de générer progressivement un graphe en fonction de résultats de calculs et qu'on voit le graphe évoluer en temps réel. Exemple avec un calcul de pi par monte-carlo, la figure apparaît en blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite
Anaconda.
Pour faire du graphique j'utilise le module matplotlib.pyplot.
Ce que je voudrais faire et que je n'arrive pas à faire serait de
générer progressivement un graphe en fonction de résultats de calculs et
qu'on voit le graphe évoluer en temps réel.
Exemple avec un calcul de pi par monte-carlo, la figure apparaît en
blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
Je débute en Python. J'utilise la version 2.7.5 fournie avec la suite Anaconda. Pour faire du graphique j'utilise le module matplotlib.pyplot. Ce que je voudrais faire et que je n'arrive pas à faire serait de générer progressivement un graphe en fonction de résultats de calculs et qu'on voit le graphe évoluer en temps réel. Exemple avec un calcul de pi par monte-carlo, la figure apparaît en blanc mais tant que le calcul n'est pas fini, rien n'est tracé :
Merci à vous 3. Je compile, je teste et je viendrai vous dire ce qu'il en est du résultat (mais il faudra me laisser un peu de temps je suis un peu charrette).
Merci à vous 3. Je compile, je teste et je viendrai vous dire ce qu'il
en est du résultat (mais il faudra me laisser un peu de temps je suis un
peu charrette).
Merci à vous 3. Je compile, je teste et je viendrai vous dire ce qu'il en est du résultat (mais il faudra me laisser un peu de temps je suis un peu charrette).