π
<-
Chat plein-écran
[^]

matplotlib.pyplot + turtle dans ton Python Casio; avril 2020

matplotlib.pyplot + turtle dans ton Python Casio; avril 2020

Unread postby critor » 31 Jan 2020, 23:32

Les calculatrices graphiques
Casio Graph 90+E
et
Graph 35+E II
disposent d'une application
Python
intégrée qui a l'avantage de rester disponible en mode examen.
Toutefois, l'interpréteur
Python
en question ne disposait pas d'un module graphique, ce qui était embêtant dès la
Seconde
notamment pour le nouveau programme de
Physique-Chimie
depuis la rentrée 2019. Celui-ci demande en effet entre autres en
Python
:
  • de construire des diagrammes
    (nuages de points, histogrammes)
  • de représenter le déplacement d'un mobile ponctuel avec les différentes positions successives et vecteurs vitesse associés

Dans un article précédent, nous t'informions que
Casio
, comme à son habitude très réactif par rapport aux dernières évolutions des programmes scolaires, avait décidé de t'apporter une solution dès le mois d'
avril 2020
.

La solution s'approchant à grands pas prendra la forme d'une mise à jour gratuite qui rajoutera un module graphique au
Python
de ta
Graph 90+E
ou
Graph 35+E II
.

Aujourd'hui, dans le cadre de sa
newsletter
de rentrée 2020,
Casio
nous présente enfin plus en détails sa solution
Python
graphique, et nous allons voir jusqu'à quel point elle répond aux exigences des programmes scolaires.

La solution comprend un module
Python
importable
matplotl
, un nom qui fait directement penser au légendaire
matplotlib
.
Cela voudrait-il dire que
Casio
a fait, contrairement à d'autres constructeurs, le choix d'une certaine compatibilité avec ce qui existe déjà pour ce dernier ? Nous allons voir cela.


Comme
matplotlib
, le
matplotl
de
Casio
dispose d'une fonction bar() pour le tracé d'histogrammes.
Déjà une réponse à un des besoins en
Physique-Chimie
, même si un usage en
Mathématiques
n'est pas à exclure, dans la partie
Statistiques
par exemple. :bj:
Code: Select all
from matplotl 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)


Comme avec
matplotlib
, la fonction scatter() permet de réaliser d'afficher une représentation en nuage de points.
Encore un bon point pour le programme de
Physique-Chimie
. :bj:
Code: Select all
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()



Mais ce n'est pas fini, le programme de
Physique-Chimie
demande également de
représenter le déplacement d'un mobile ponctuel avec les différentes positions successives et vecteurs vitesse associés
.
Et bien
Casio
t'a également repris la fonction
matplotlib
de tracé de vecteur arrow() afin de te faciliter grandement cette tâche essentielle ! :bj:
Code: Select all
from matplotl import *

arrow(0.20, 0.54, 0, -0.15)
arrow(0.30, 0.46, 0, -0.15)
arrow(0.40, 0.59, 0, -0.15)
show()


Ce n'est pas terminé,
Casio
ne se contente pas d'une simple lecture au mot près des exigences en
Python
des programmes scolaires dans leur état actuel, mais fait preuve d'une véritable réflexion sur l'évolution des pratiques qu'ils vont induire à l'avenir.

La fonction de tracé de diagramme plot() est également présente. Elle fonctionne comme scatter(), à la différence qu'elle relie les points, et peut donc servir entre autres à tracer des courbes.
Ce sera une formidable occasion en
Mathématiques
d'aborder par exemple le fonctionnement interne d'un grapheur de fonctions, et donc de mieux comprendre quelles en sont les limites et donc pièges éventuels lors d'une lecture graphique ! :bj:
Code: Select all
from matplotl import *

def fonction():
    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()


Et ce n'est toujours pas tout.
Casio
nous annonce également une autre fonction principale de
matplotlib
, boxplot(), pour les diagrammes en boîte ou diagrammes à moustache. :)
Ces derniers fonctionneront toutefois comme dans
matplotlib
, c'est-à-dire avec la calcul des quartiles à l'anglosaxonne.
Mais
Casio
a tout prévu, en rajoutant sa propre fonction boxplotFR() qui effectuera pour sa part les calculs de quartiles à la française ! :bj:

Donc qu'est-ce que ça vaut ?

Déjà, le module
matplotl
de
Casio
n'est pas exactement une version allégée de
matplotlib
.
Plus précisément, il s'agit en fait d'une version allégée du sous-module
matplotlib.pyplot
.
Tu pourras en effet constater comme nous que tous les scripts fournis en exemple par
Casio
sont parfaitement fonctionnels sous
matplotlib
, à condition de remplacer la ligne import matplotl par un import matplotlib.pyplot.

Cela n'en reste pas moins extraordinaire d'avoir enfin un
matplotlib.pyplot
sur une calculatrice graphique ! :bj:

Aussi, contrairement à la concurrence à ce jour,
Casio
a fait le choix pour ses fonctionnalités graphiques de respecter un standard déjà établi, le choix de la compatibilité avec l'existant, et nous ne pouvons que l'en féliciter ! :bj:
Il sera en effet très facile pour les enseignants et lycéens connaissant
matplotlib
de rentrer dans l'environnement
Python
de la calculatrice
Casio
et de faire des allers-retours entre les deux environnements ! :D

Mais crois-le ou pas, ce n'est toujours pas terminé. Car la solution
Python
graphique de
Casio
consiste en fait en deux modules, le deuxième étant
turtle
comme chez
NumWorks
, ici encore un standard ! :bj:

Sont déjà annoncées par
Casio
les fonction suivantes :
  • pendown()
  • penup()
  • pencolor()
  • pensize()
  • forward()
  • backward()
  • right()
  • left()
  • goto()
  • setheading()
  • circle()

Pour l'apprentissage du
Python
aussi bien en
Mathématiques
qu'en
Physique-Chimie
, de quoi s'appuyer avantageusement sur les acquis de
Scratch
du collège ! :bj:

Code: Select all
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)


Code: Select all
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)

Source
:
newsletter
Casio
lycée rentrée 2020


Référence
:
https://www.planet-casio.com/Fr/forums/ ... 154&page=1
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 8.4%
 
Posts: 35905
Images: 9787
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby Extra44 » 01 Feb 2020, 00:39

C'est prévu pour avril 2020...
Ca fait rêver c sûr
😍
Vivement les tests :D
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 45.1%
 
Posts: 589
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
Class: S.I.

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby Lionel Debroux » 01 Feb 2020, 08:44

Un portage d'un sous-ensemble intéressant de deux APIs standard... c'est très bien de la part de Casio :)
Si seulement
tous
les constructeurs pouvaient voulaient s'aligner au moins sur ces deux modules... si NumWorks ne le fait pas, des tiers le feront peut-être à leur place (et ça n'empêchera pas NumWorks de récupérer ce qui a été fait), mais c'est plus douteux pour HP et surtout TI.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 7.6%
 
Posts: 6573
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby KikooDX » 01 Feb 2020, 11:45

Superbe nouvelle !
Le nombre de possibilités est assez impressionnant, je suis impatient de bidouiller avec tout ça.
User avatar
KikooDX
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Level up: 30%
 
Posts: 3
Joined: 11 Jul 2019, 13:07
Gender: Not specified

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby edgar13 » 02 Feb 2020, 11:19

Miam miam :favorite:
Minecraft 3D Ti 83 PCE avec Azerpogba
!!Programme trop lent!! Le programme est injouable 2 sec pour une action j'essaie d'améliorer

53%

Projet secret

1%

Mes programmes sont ici: archives_cat.php?auteur=201254
User avatar
edgar13Concepteur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 68.6%
 
Posts: 575
Images: 23
Joined: 04 Jan 2019, 20:31
Location: Sur TI-Planet voyons
Gender: Male
Calculator(s):
Class: Terminale Maths-Physique +Maths exp
YouTube: Non
Twitter: Non
Facebook: Non
GitHub: Non

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby NeOtuX » 02 Feb 2020, 23:40

Excellente nouvelle. C'est à se demander à quoi serviront les autres menus de la Casio lorsque le Python aura des fonctions qui les remplacent tous !

Merci pour l'article.
User avatar
NeOtuX
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 32.8%
 
Posts: 162
Joined: 18 May 2012, 08:58
Gender: Male
Calculator(s):

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby compsystems » 03 Feb 2020, 03:38

the characters >>> could be replaced by », with the purpose of saving space

Image
User avatar
compsystems
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.8%
 
Posts: 244
Joined: 30 May 2011, 13:44
Gender: Male
Calculator(s):

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby critor » 03 Feb 2020, 23:25

Article complémentaire sur Planète Casio, avec une comparaison visuelle des affichages graphiques des scripts Python sur calculatrice et sur PC : :)
https://www.planet-casio.com/Fr/forums/ ... p?id=16154
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 8.4%
 
Posts: 35905
Images: 9787
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: matplotlib.pyplot + turtle dans ton Python Casio; avril

Unread postby parisse » 04 Feb 2020, 09:30

Pour memoire, tout ca existe *deja* dans KhiCAS, modulo quelques petites modifications. Pas la peine d'attendre le printemps prochain!

Au passage, je signale des problemes dans les scripts pour la tortue, dans le premier la lettre i est utilisee deux fois comme compteur de boucle dans deux boucles imbriquees, ca ne gene peut-etre pas MicroPython mais meme c'est source d'erreur d'utiliser ce style de programmation (si on veut utiliser la valeur de l'indice!), et cela ne fonctionnera pas dans beaucoup de langages de programmation (dont Xcas, puisqu'on ecrase la valeur du compteur de boucle de la boucle exterieure dans la boucle interieure).
Code: Select all
from turtle import *
def f():
for i in range(1,37):
    r=(exp(-0.5*((i-6)/12)**2))
    g=(exp(-0.5*((i-18)/12)**2))
    b=(exp(-0.5*((i-30)/12)**2))
    pencolor([r,g,b])
    for j in range(1,5):
        forward(60)
        right(90)
    right(10)

Le code en anglais fonctionne tel quel sur Xcas mais n'est pour l'instant pas supporte sur la Casio par manque de place, il faut donc l'ecrire en francais
Code: Select all
def f():
for i in range(1,37):
    r=(exp(-0.5*((i-6)/12)**2))
    g=(exp(-0.5*((i-18)/12)**2))
    b=(exp(-0.5*((i-30)/12)**2))
    crayon([r,g,b])
    for j in range(1,5):
        avance(60)
        tourne_droite(90)
    tourne_droite(10)


Dans le deuxieme script tortue, il y a des erreurs d'indentation a la fin
Code: Select all
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)
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 6.9%
 
Posts: 2130
Joined: 13 Dec 2013, 16:35
Gender: Not specified


Return to News Casio

Who is online

Users browsing this forum: No registered users and 9 guests

-
Search
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
858 utilisateurs:
>839 invités
>13 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)

-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)