Deutsch   English   Français   

13. Graphiques de fonctions et diagrammes

 

 

TU APPRENDS ICI...

 

à connaître quelques outils pratiques mis à disposition dans le module gpanel pour représenter des graphiques de fonctions.

 

 

EXEMPLES

 

Le système de coordonnées peut être choisi librement lors de la création de la fenêtre graphique avec makeGPanel(). Une grille de coordonnées est créée avec la fonction drawGrid(). On y définit la zone des axes x et y ainsi que la couleur de la grille.

Example 1: Représenter une fonction et utiliser la grille de coordonnées
Dans cet exemple, la fonction y = x3 - 9x est représentée dans un système de coordonnées. Avec drawGrid(-5, 5, -25, 25, "gray"), la grille est dessinée en gris dans l’intervalle x de -5 à 5 et dans l’intervalle y de -25 à 25.

u dois choisir une fenêtre GPanel un peu plus grande afin de laisser de la place pour les légendes des axes. En général, on agrandit les limites d’environ 10 % de chaque côté ; ici, x va donc de -6 à 6 et y de -30 à 30.

Dans une boucle while, la valeur de la fonction est calculée par petits pas entre -5 et 5, puis affichée avec la fonction draw(x, y). Le nouveau point est automatiquement relié à l’ancien point. Comme le curseur graphique se trouve au départ au point (0, 0), il faut le placer sur le premier point de la fonction avec pos(x, y).

 

Programme:     

# Gp13a.py
from gpanel import *
    
makeGPanel(-6, 6, -30, 30)
drawGrid(-5, 5, -25, 25, "gray")

setColor("blue")
lineWidth(2)
x  = -5
while x < 5:
    y = x ** 3 - 9 * x
    pos(x, y) if x == -5 else draw(x, y)
    x = x + 0.01 
Copy to clipboard
 



Example 2: Création d’un diagramme de fréquences (diagramme en barres)

Dans cet exemple, les valeurs d’une liste représentant par exemple les résultats d’une étude statistique sont affichées sous forme de diagramme de fréquences. Pour dessiner les barres, tu utilises la fonction fillRectangle().

La valeur maximale de y dans la grille (ici 100) doit être légèrement supérieure à la plus grande valeur de la liste.

Dans la documentation, tu verras que tu peux aussi utiliser la commande
drawGrid(x1, x2, y1, y2, x3, y3, color)
où x3 et y3 permettent de définir le nombre de graduations sur les axes x et y.

 

Programme:      

# Gp13b.py
from gpanel import *
    
makeGPanel(-1, 11, -10, 110)
drawGrid(0, 10, 0,  100,  "gray")

values = [35, 40, 25, 46, 72, 65, 80, 60, 36]
setColor("red")

x = 1
for y in values:
    fillRectangle(x - 0.3 , 0, x + 0.3 , y)
    x = x + 1 
Copy to clipboard

 

Example 3: Utilisation du module Python math

Python possède de nombreuses fonctions mathématiques. Pour les utiliser, il faut importer le module math.

La fonction connue en physique

y = ae-kt sin(ωt + π/2)

représente une oscillation harmonique amortie.
a: amplitude initiale
k: constante d’amortissement
ω: pulsation du système non amorti

Les valeurs de la fonction sont calculées à l’aide des fonctions exp() , sin() et pidu module math.

 

La documentation du module math se trouve sur Internet à l’adresse https://docs.python.org/2/library/math.html. On peut aussi l’afficher directement dans le menu de TigerJython sous HelpPython Docs.

Programme:      

# Gp13c.py
from gpanel import *
from math import exp, sin, pi

makeGPanel(-10, 110, -7, 7)
drawGrid(0, 100, -6, 6, "gray")

setColor("blue")
lineWidth(3)
x  = 0
a = 5
k = 0.04
omega = 0.6

while x < 100:
    y = a * exp(-k * x) * sin(omega * x + pi/2) 
    pos(x, y) if x == 0 else draw(x, y)
    x = x + 0.1 
    delay(10)
Copy to clipboard

 

 

À RETENIR...

 

Avec GPanel, tu peux créer très facilement des diagrammes et des graphes de fonctions. Tu peux choisir librement le système de coordonnées de la fenêtre graphique et créer une grille avec la fonction drawGrid(), qui possède plusieurs paramètres.

 

 

À FAIRE PAR TOI-MÊME

 

1)


Dessine le graphe de la fonction
y = sin(x) pour -5 < x < 8

Pour calculer les valeurs du sinus, utilise la fonction
y = math.sin(x) du module math.

 


 

2)


Un dé est lancé 200 fois et le nombre d’occurrences de 1, 2, 3, ..., 6 est enregistré dans la liste a.

from gpanel import *
from random import randint
    
a = [0, 0, 0, 0, 0, 0]
n = 200
for i in range(n):
    r = randint(1, 6)
    if r == 1:
        a[0] += 1
    elif r == 2:
        a[1] += 1
    elif r == 3:
        a[2] += 1 
    elif r == 4:
        a[3] += 1
    elif r == 5:
        a[4] += 1
    elif r == 6:
        a[5] += 1       
        
print(a)
      

Représente les fréquences avec un diagramme en barres.

 


 

3)


Deux pièces sont lancées simultanément 200 fois. Représente les fréquences des événements suivants avec un diagramme en barres :
  • deux fois pile
  • une fois pile et une fois face
  • deux fois face