Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Modules graphiques Python en Avril - matplotlib et turtle !
Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Modules graphiques Python en Avril - matplotlib et turtle !

Posté le 03/02/2020 22:13

Bonne nouvelle, Casio-fans ! Vos voeux les plus fous de modules graphiques Python sont probablement sur le point d'être exaucés.

Olivier Lecluse, sur Twitter, a écrit :
Idéalement on pourrait imaginer que les plotlib soient des sous parties de matplotlib, qui est un peu le standard en python, ce qui assurerait une certaine cohérence. Sait-on si c'est le cas avec ti-plotlib?
(source)

Eh bien oui, Casio a fait attention à la compatibilité pour ses modules Python. Le module de tracé, qui permet de « programmer l’affichage de tracés en classe de mathématiques comme de physique », est conforme à l'API du module pyplot de matplotlib, un projet très populaire et le standard de facto pour le tracé en Python.

Le module de tracé, façon matplotlib

Dans sa dernière newsletter datée du 10 Janvier, Casio nous montre en effet à la fois des images, mais aussi du code. Comme on va le voir tout de suite, le même code marche sur PC comme sur calculatrice à condition de changer le nom de module Casio matplotl en matplotlib.pyplot.

La newsletter annonce :
• Des fonctions de matplotlib: bar(), scatter(), boxplot(), arrow(), et plot().
• Une fonction exclusive: boxplotFR(), pour les diagrammes en boîtes à moustache avec les quartiles français.

Et voici les exemples proposés, avec la comparaison entre la calculatrice et le PC.

from matplotl import *
arrow(0.20, 0.54, 0, -0.1)
arrow(0.30, 0.46, 0, -0.1)
arrow(0.40, 0.59, 0, -0.1)
show()


from matplotl import *
x=[100,110,120,130,140,150,160]
y=[105,95,75,68,53,46,31]
scatter(x,y)

axis([80,170,10,130])
text(110,125,"Nombre d'acheteurs vs prix de vente")
show()


from matplotlib.pyplot import *

def f(x):
  return x**3-6*x**2+9*x+1
start = -0.5

end = 4.5
steps = 0.1
x=[start+i*steps for i in range(int((end-start)/steps)+1)]
y=[f(j) for j in x]
plot(x,y)
show()


from matplotlib.pyplot import *

x=[119.1,119.3,119.5,119.6,119.9,120.0,120.1,120.3,120.4]
y=[1,3,4,3,1,3,1,3,1]
bar(x,y,0.08)
show()


Eh ben wow, c'est vraiment réussi ! On dirait presque un portage en règle. La compatibilité est juste totale.


Dessin glouton avec le module turtle

L'autre module présenté (celui qui vaut le pluriel dans le nom de cet article) c'est turtle. Celui-ci est vraiment identique à la version qu'on trouve sur ordinateur, jusqu'au nom. Il ressemble beaucoup au langage de programmation du menu algorithm de la fx-92 Scientifique Collège+... mais en Python.

On y retrouve plein de fonctions bien connues !
pendown(), penup(), pencolor() et pensize() pour modifier les paramètres du crayon.
forward(), backward(), right(), left() et goto() pour se déplacer (et dessiner si le crayon est en position basse).
• Et même setheading() et circle() !

Voici la comparaison avec le PC pour les exemples qui sont proposés.

from math import exp
from turtle import *

for i in range(1,37):
  red=(exp(-0.5*((i-6)/12)**2))
  green=(exp(-0.5*((i-18)/12)**2))
  blue=(exp(-0.5*((i-30)/12)**2))
  pencolor([red,green,blue])

  for i in range(1,5):
    forward(60)
    right(90)
  right(10)


from turtle import *

def koch(n,l):
  if n==0:
    forward(l)
  else:
    koch(n-1,l/3)
    left(60)
    koch(n-1,l/3)
    right(120)
    koch(n-1,l/3)
    left(60)
    koch(n-1,l/3)

pencolor("blue")
penup()
goto(-180,-50)
pendown()
koch(4,360)


Comme vous pouvez le voir, tous ces modules sont vraiment fidèles aux bibliothèques Python déjà répandues.


Date de sortie et installation

La newsletter annonce une date de sortie en Avril et donne déjà des instructions d'installation !

Pour pouvoir utiliser ces nouvelles commandes sur votre calculatrice Graph 35+E II ou Graph 90+E, il vous suffira de la mettre à jour en avril avec la bibliothèque casioplot, puis d’ajouter les programmes matplotl et turtle (téléchargeables gratuitement sur www.casio-education.fr).

Les calculatrices Graph 35+E II et Graph 90+E se comportant comme des clés USB, vous pouvez toujours transférer, via un simple copier-coller, un fichier Python de votre calculatrice à l’ordinateur et inversement. Pas besoin de logiciel de transfert ou de conversion ! Et si vous souhaitez utiliser les programmes graphiques créés sur votre calculatrice, sur votre ordinateur, il vous suffira simplement de remplacer sur vos scripts le nom de la bibliothèque matplotl par matplotlib.

D'après ces instructions, il y aura deux composants: une bibliothèque casioplot, et deux scripts matplotl.py et turtle.py. Cela expliquerait pourquoi le nom du module de tracé a été raccourci de matplotlib à juste matplotl : les noms de fichiers sur les Graph sont limités à 8 caractères !

Le nom casioplot laisse à penser que le coeur de la bibliothèque est spécifique aux calculatrices Casio et partagée entre les deux modules matplotl et turtle. Casio a donc codé ses propres fonctions, mais a quand même tenu à respecter les APIs répandues du Python pour plus de compatibilité ! Eh bien merci !


Le bonus : scripts compatibles calto/PC sans modification

Comme le nom du module est différent entre la calculatrice et le PC, on peut penser qu'un même programme ne peut pas être lancé sur les deux sans modification. Heureusement, Python a tout prévu ! Si on tente d'importer un module qui n'existe pas, une ImportError se produit. On peut le détecter et alors charger l'autre module au besoin !

try:
  from matplotl import *
except ImportError:
  from matplotlib.pyplot import *

Je vous laisse imaginer de quoi jouer avec cette technique, qui permet aussi de détecter les différents modèles de calculatrices (par exemple en important tiplotlib sur TI ou kandinsky sur Numworks) !


Article connexe sur TI-Planet : matplotlib.pyplot + turtle dans ton Python Casio; avril 2020

À bientôt sur Planète Casio !


Fichier joint


1, 2, 3 Suivante
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 04/02/2020 01:16 | #


esperons qu'une annonce de sortie en avril n'et pas signe que l'on tente de noyer le poisson
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 04/02/2020 07:08 | #


Wow, bientôt des jeux en python alors !
lol le truc infaisable
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 04/02/2020 07:23 | #


Des jeux en python ?! Bien sûr que c'est possible !
Mais faut aussi penser aux courbes et différents graphiques ! Et ça c'est une bonne nouvelle
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Citer : Posté le 04/02/2020 07:47 | #


Je pense que les jeux en Python ça a plus de potentiel que l'article ne le laisse entendre. Je m'explique.

La bibliothèque sous-jacente casioplot doit permettre à la fois d'implémenter matplotl et turtle, si mon interprétation des instructions d'installation est bonne. J'espère donc y trouver des primitives comme tracer des points, des lignes ou des rectangles. Et là ça devient tout de suite plus intéressant pour les jeux
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 04/02/2020 07:51 | #


Surtout sur une calculatrice aussi peu pratique que la Graph 90+ E x)
Lente, Basic Casio buggé, C.Basic pas encore implémenté... Au final, c'est normale qu'elle ne soit pas si attrayante en terme de jeux...
Critor En ligne Administrateur Points: 2605 Défis: 18 Message

Citer : Posté le 04/02/2020 07:54 | #


Merci pour cet article d'excellente facture, sa lecture fut un plaisir.

Massena a écrit :
Wow, bientôt des jeux en python alors !

Pas encore, pour ça il faudrait des fonctions permettant de lire l'état des touches clavier.
Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Citer : Posté le 04/02/2020 07:54 | #


Euh, pardon ?!

La Graph 90+E n'est pas si lente (le Basic n'est pas plus lent, sauf un petit poil sur l'affichage de texte, limite perceptible), C.Basic est totalement implémenté dessus depuis très longtemps (il y a même eu des jeux codés sur C.Basic en compétition avec toi au CPC 25 !). Pour les bugs du Basic je veux bien voir...

Depuis que j'ai commencé à codé des add-ins dessus j'ai pas hyper envie de revenir à la monochrome. Je me demande comment tu as pu t'en faire une opinion si négative. :o
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 04/02/2020 08:35 | #


Je le rappelle encore, C.Basic est plus buggé que le Casio Basic en l'état.
Je préfère largement coder sur 90+e, que ce soit pour les couleurs ou la lisibilité (plus de bavure ).
Je suis bien hype par ce truc, si vous avez le droit de testeur essayer de pousser un petit Getkey de rien du tout s'il vous plaît !
La gestion des couleurs par RGB est une très bonne nouvelle, ça veut dire qu'on peut tracer en blanc.
Impatient de bidouiller ce truc

Ajouté le 04/02/2020 à 08:54 :
J'ajoute d'ailleurs en réponse à Massena que les jeux Python, ça a déjà été fait et on avait pas ça.
Regarde les jeux de Shadow (il en a fait 3 ou 4) et mon Sokoban.
ouais ouais
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 04/02/2020 09:02 | #


Je suis d'accord avec KikooDX On a quelques jeux en Python pour la Graph 90+E avec du Ascii art C'est pas simple, c'est moins intuitif, c'est pas super ergonomique, mais c'est jouable

J'attend avril et j'essaye un jeu de la vie de Conway en Python sur la Graph 90+E voir si c'est ok niveau vitesse… (j'en doute un peu à vrai dire m'enfin… )
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Parisse Hors ligne Membre Points: 479 Défis: 0 Message

Citer : Posté le 04/02/2020 09:05 | #


Juste pour memoire, tout ca existe *deja* dans KhiCAS. Il y a surement des petits bugs de compatibilite (ou des instructions a rajouter) parce que je ne teste pas la compatibilite matplotlib et que presque personne ne s'y est interesse, vu qu'il est beaucoup plus simple d'utiliser une instruction plot(expression) a la facon Xcas que de devoir construire une discretisation et un nuage de points relies a la facon matplotlib.
De meme il y a dans KhiCAS de nombreuses instructions permettant d'afficher des graphiques de base pixel par pixel, des segments de droite, des polygones, des polygone remplis, des arcs de cercle (d'ellipses).
KhiCAS n'est pas qu'un logiciel de maths, c'est aussi un environnement de programmation tres complet! Quelques exemples
https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/sessions/
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 04/02/2020 20:58 | #


Encourageant de voir la G90+ se doter de fonctionnalités plus avancées ! Ce serait le feu de pouvoir réaliser des jeux en Python !
In Arch, I trust ! And you ?
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 04/02/2020 21:26 | #


Je ne sais pas, je trouve que chaque fonction met trop longtemps à s'afficher dans mes programmes...
Je crois bien que ce qui m'énerve le plus, c'est l'impossibilité de créer des Pictures en couleur in-game, que ce soit avec C.Basic ou en Basic Casio >_<

Les monochromes ont un côté plus pratique, plus simple qui me fait pencher de leur côté.
Par exemple, je pourrais tout à fait coder Evocalc sur Graph 90+E, mais je ne le fait pas (objectivement ça serait mieux) à cause de certaines fonctionnalités de C.Basic pas encore développées.

Après, ça reste toujours un final une super calculatrice pour travailler, et je la prends volontier pour calculer en cours de maths.
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 05/02/2020 10:24 | #


Oui je suis entièrement d'accord pour la praticité de l'écran graphique en Basic, je suis un peu en dehors de tout ça, je suis juste content de pouvoir faire des Locate en couleur
En mode graphique, il est vrai que le Basic monochrome a beaucoup plus d'astuces connues.
Si plus de gens se mettaient à coder en Basic de la CG, on aurait sûrement plus de connaissances sur ses fonctions d'affichage (ça ne risque pas d'arriver n'empêche, on en a perdu le besoin avec C.Basic).
Quelque chose que tu as l'air d'oublier est que le Basic de la 90+e peut exploiter un nombre de pictures énorme, étant donné qu'elles sont stockées dans la mémoire secondaire. C'est un gros point fort pour la machine (et pour tes zolis dessins).
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Citer : Posté le 27/02/2020 12:01 | #


Attention ça ne concerne pas le Basic (PRGM) mais l'application Python !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 27/02/2020 12:18 | #


Lephenixnoir a écrit :
Attention ça ne concerne pas le Basic (PRGM) mais l'application Python !

Peut-être parlait-il de notre conversation sur la 90+e commencée par Masséna, et qu'il répondait à mon dernier message (la capacité de pictures virtuellement infinie de la 90+e) ?
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Citer : Posté le 27/02/2020 12:56 | #


My bad, le topic étant vieux j'ai supposé implicitement que c'était en rapport avec l'article.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Massena Hors ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 27/02/2020 13:14 | #


Bon du coup de toute façon comme ma monochrome a 95% de chance d'avoir à tout jamais la touche 1 et la touche 0 mortes, je vais devoir me réconcilier avec la seule autre calculatrice CASIO qu'il me reste, la 90+E x)
Critor En ligne Administrateur Points: 2605 Défis: 18 Message

Citer : Posté le 20/03/2020 10:20 | #


La mise à jour devrait être publiée pour le 8 avril selon Casio France.

A bientôt.
Lephenixnoir En ligne Administrateur Points: 24219 Défis: 170 Message

Citer : Posté le 20/03/2020 10:21 | #


C'est pour bientôt. Préparez vos calculatrices pour tester ça !

Btwi il faudrait que je note ça sur le calendrier en page d'accueil, ça pourrait être sympa.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 20/03/2020 10:23 | #



Event rush de sortie, une semaine pour créer un jeu avec la nouvelle bibliothèque graphique
ouais ouais
1, 2, 3 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 57 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd