Dessin dynamique
Salut à tous,
Je suis sur Spyder Python 3.5. Je veux dessiner dynamiquement, rien à faire. Je chope des codes sur le net
rien ne marche :-(
Je veux juste dessiner la suite de points (n,n) pour qu'ils apparaissent les uns après les autres.
Quelqu'un pourrait-il m'aider ?
Mauricio
Je suis sur Spyder Python 3.5. Je veux dessiner dynamiquement, rien à faire. Je chope des codes sur le net
rien ne marche :-(
Je veux juste dessiner la suite de points (n,n) pour qu'ils apparaissent les uns après les autres.
Quelqu'un pourrait-il m'aider ?
Mauricio
Réponses
-
Avec Turtle, easy :
from turtle import * penup() shape('circle') speed(1) hideturtle() for n in range(10): stamp() goto(20*n,20*n) input("Press enter to exit")
Tu peux régler la vitesse, la forme, la taille... Le zoom aussi sûrement.
Avec matplotlib c'est un peu plus pénible ( il y a peut-être moyen de faire plus simple, je ne suis pas un expert avec cet bibli) :import numpy as np import matplotlib.pyplot as plt from time import sleep from math import sqrt WIDTH = 10 HEIGHT = 10 HOT_POINT = HOT_POINT_X, HOT_POINT_Y = (0, HEIGHT//2) # matrice qui sera affiché à l'écran img = np.zeros((WIDTH, HEIGHT)) show_obj = plt.imshow(img, cmap='gray', vmin=0, vmax=255) plt.ion() fig = plt.figure() plt.show() for t in range(1, 10): # on calcule la nouvelle matrice img[t, t] = 255 # on met à jour le tableau affiché show_obj.set_array(img) # on redessine fig.canvas.draw() sleep(0.1) # 0.1 secondes plt.ioff() input("Press enter to exit")
Ce code fonctionne très bien sous linux (en tout cas Debian et Ubuntu), mais mes élèves n'avaient pas réussi à le faire fonctionner sous windows. Ils avaient utilisé http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/ (premier lien google parlant de AnimFunc.
Si tu veux faire des trucs qui bougent, je pense que Turtle est beaucoup plus adapté. On peut mettre plusieurs tortues sur la piste, c'est assez ludique. Après si c'est pour afficher des données scientifiques, oui Matplotlib c'est mieux. -
Effectivement, on peut faire plus simple :
import matplotlib.pyplot as plt x = [3,4,6,4,3,2,0,2,3] # liste des abscisses des points à placer y = [0,2,3,4,6,4,3,2,0] # liste des ordonnées des points à placer plt.plot(x, y) # calcule le graphique plt.show() # affiche le graphique
Par défaut, "plot" relie les points... mais on peut lui demander de faire autrement.
Je t'invite à lire la documentation à ce sujet.
Edit : Oups, en relisant le titre, je m'aperçois que je réponds sans doute à côté de la plaque. Désolé... je laisse tout de même : cela peut aider quelqu'un d'autre. -
Merci ça marche!
En fait utilisateurs de spyder pour info: si on exécute dans la console ce n'est jamais dynamique.
Il faut aller dans préférences et choisir d'exécuter dans une fenêtre externe.
Sous Linux ça marche bien, en revanche sur mac Os, ça ne marche pas en compilant depuis spyder.
Ca m'a pris du temps pour comprendre.
Au passage je trouve que la commande random de numpy n'est pas très random du tout!
Mauricio
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres