Bonjour à tous,
Contexte:
Je cherche une alternative à mathlab simulink pour la mise au point d'algorithmes de contrôle et la modélisation de systèmes.
Après quelques essais (scilab xcos, modelica, octave …), c'est python qui a retenu mon attention et en particulier les notebook Jupyter et la bibliothèque control.
Ça fait quelques jours que je fais un essai sur la modélisation d'une régulation pour un générateur de courant mais certaines subtilités m'échappe.
En particulier, lorsque je veux modifier un paramètre dans une "cellule code" et la rejouer. Si cette dernière contient une courbe générer avec matplotlib, soit la courbe ne s'affiche pas, ou bien pas correctement, ou toutes les autres courbes s'en retrouve modifiées…
Matplotlib propose bien des exemples d'utilisation, mais comme mes essais, ils ne semblent fonctionner que si l'on exécute le "notebook" une seule fois.
Question:
L'utilisation de Jupyter notebook est-elle réservée à la documentation final du processus et non aux essais ? Ou bien je passe à côté de quelque chose ?
# État
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 6 (+3/-0).
Mes souvenirs de Jupyter sont assez faiblards, Mais ne se pourrait-il que vous rencontriez des problèmes liés à l'état de la mémoire au moment de la nouvelle exécution du code ? Quelque chose comme exécuter 1,2,3,2 qui ne donnerait pas le même résultat la seconde fois pour la cellule 2 que la première car les exécutions initiales de 2 & 3 ont modifiées l'état du système par rapport au résultat suite à 1. Si c'est bien le cas, il faut écrire le code en conséquence.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: État
Posté par uneTanche (site web personnel, Mastodon) . Évalué à 2 (+1/-0).
C'est aussi ce que j'en ai déduit. Cependant, je n'ai pas trouvé comment utiliser matplotlib avec cette contrainte.
Je vais creuser encore de ce côté.
Merci pour votre réponse.
# regarder où sont les variables
Posté par lejocelyn (site web personnel) . Évalué à 5 (+3/-0).
Je fais les essais via jupyter (j'implémente d'ailleurs plusieurs modes de "run" au début de mon script, mais ça a du sens parce que mon portable est ancien et je fais des stats bayésiennes avec des corpus de données de taille encore raisonnable [max 137k lignes]) smoke pour voir si ça fonctionne, test pour avoir une idée du résultat final et article pour un traitement avec des valeurs suffisantes pour publier.
Tes problèmes sont très certainement dus à variables initialisées dans une cellule précédente et modifiées dans la cellule que tu testes. C'est un comportement attendu mais qui peut gêner.
Et oui, les notebooks sont pensés généralement pour être exécuté sans aller-retour.
# Une blague du figure manager de matplotlib ?
Posté par fab . Évalué à 1 (+0/-0).
Salut,
pour ma part, aucun souci pour exécuter les cellules dans l'ordre voulu (enfin du moment que les variables existent bien au moment où elles sont utilisées), ni pour que les figures (ré)apparaissent bien.
Quelques questions pour essayer de cerner le souci :
- quelle installation (OS, jupyter/jupyterlab, versions jupyter et matplotlib) ?
- quel backend matplotlib ?
import matplotlib.pyplot as plt; plt.get_backend()
- comment crées tu les figures ? pyplot, pure OOP ?
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.