HomeTortue graphiqueGPanelRobotique WebTigerPython
 Python - Online
Deutsch   English   Français   

16. NumPy et MatPlotLib

 

 

TU APPRENDS ICI...

 

comment importer les bibliothèques Python numpy et matplotlib dans WebTigerPython.

 

 

QU’EST-CE QUE NUMPY ET MATPLOTLIB?

 

numpy est un module complémentaire de Python utilisé pour les calculs scientifiques. Comme ce module est écrit en C, les calculs numériques avec numpy sont beaucoup plus rapides qu’avec le Python standard.
De plus, numpy enrichit Python avec des structures de données puissantes permettant de travailler efficacement avec de grands tableaux (arrays) et des matrices.

matplotlib est utilisé pour la visualisation et la représentation graphique des données.

 

 

EXEMPLES

 
 

Example 1: Représenter graphiquement une série de données
Tu importes les modules numpy et matplotlib. Il est habituel de leur donner les alias courts np et plt qui seront ensuite utilisés dans le programme. Tu convertis la liste values en tableau numpy avec np.array()et tu calcules les valeurs du tableau v.
Avec la fonction plot()du module matplotlib, tu représentes ce tableau dans un système de coordonnées.

Programme:  

#Gp16a.py
import numpy as np
import matplotlib.pyplot as plt

values = [20.1, 20.8, 21.9, 22.5, 22.7,21.8, 21.3, 20.9, 20.1]
a = np.array(values)
v = a * 9/5 + 34.789
print(v)
plt.plot(v)
plt.show()
Copy to clipboard


Example 2
: Graphiques de fonctions
Le module numpy prend en charge de nombreuses fonctions mathématiques
(https://numpy.org/doc/stable/reference/routines.math.html).

Tu peux les représenter graphiquement très facilement avec matplotlib. Le système de coordonnées approprié est ajouté automatiquement. La fonction arange(start, stop, step)du module numpy fournit un intervalle semi-ouvert [start, stop) avec un pas step entre deux valeurs successives (start est inclus, stop ne l’est pas).

Contrairement à la fonction Python range(start, stop, step), qui fournit une liste d’entiers, arange() accepte aussi des nombres décimaux.
np.arange(0, 10.01, 0.01) renvoie un tableau contenant les nombres : 0, 0.1, 0.2, 0.3 ......10.
plt.plot(x, f1, color= "red") représente les valeurs de la fonction f1(x) en rouge.

Programme:  

#Gp16b.py
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10.01, 0.01)
f1 = np.sin(x)
f2 = np.cos(x)
f3 = 0.01 * x**2 + 0.15 * x - 1
plt.plot(x, f1, color="red")
plt.plot(x, f2, color="blue")
plt.plot(x, f3, color="green")
plt.show()
Copy to clipboard


Example 3: Diagramme en colonnes

Dans l’exemple suivant, le nombre de fruits est représenté avec un diagramme en colonnes coloré. Avec set_titel() et set_ylabel(), tu ajoutes le titre et l’étiquette de l’axe des y.

Programme:  

#Gp16c.py
import matplotlib.pyplot as plt

fig, fx = plt.subplots()
fruits = ['apple','bananas','blueberry', 'orange']
counts = [80, 40, 30, 55]
bar_colors = ['tab:red','tab:olive','tab:blue','tab:orange']
fx.bar(fruits, counts, color=bar_colors)
fx.set_ylabel('number of fruits ')
fx.set_title('Fruits')
plt.show()
Copy to clipboard

Example 4: Diagramme en barres

Ici, tu utilises un diagramme en barres pour représenter les résultats d’une simulation de lancer de dé. Tu définis une fonction countFrequency(), qui génère 300 résultats aléatoires et calcule les fréquences des différentes faces. Avec un diagramme en barres,tu représentes ces fréquences dans le système de coordonnées. Exécute le programme plusieurs fois et augmente le nombre de lancers n.

Programme:  

#Gp16d.py
import matplotlib.pyplot as plt
import numpy as np
from random import randint

def countFrequency():
    global a
    n = 300
    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     

fig, fx = plt.subplots()
diceNumbers = ('1', '2', '3', '4', '5', '6')
a = [0, 0, 0, 0, 0, 0]
y_pos = np.arange(len(diceNumbers))
countFrequency()
frequency = [a[0], a[1], a[2], a[3], a[4], a[5]]
fx.barh(y_pos, frequency, align='center')
fx.set_yticks(y_pos, labels=diceNumbers)
fx.set_xlabel('Frequency')
fx.set_title('Dice simulation (n = 300)')
plt.show()
Copy to clipboard

 

 

À RETENIR...

 

Avec import numpy et import matplotlib, tu enrichis WebTigerPython avec des modules puissants que tu peux utiliser pour les calculs scientifiques et la représentation graphique de données numériques.

 

 

À FAIRE PAR TOI-MÊME

 

1)


Représente les valeurs de la liste :

values = [35, 40, 25, 46, 72, 65, 80, 60, 36]

a) avec un graphique en lignes
b) avec un diagramme en colonnes

   
 

2)


Représente graphiquement la fonction :
f = x3 - 9x
idans l’intervalle : -4 < x < 4 .

 

 


 

3)


La fonction connue en physique
y = ae-kt sin(ωt + pi/2)
représente une oscillation harmonique amortie.
a : amplitude initiale
k : constante d’amortissement
omega : pulsation du système non amorti

Tu peux calculer les valeurs de la fonction avec les fonctions exp(), sin() et pi du module np :

f = a * np.exp(-k * x) * np.sin(omega * x + np.pi/2)

Représente graphiquement la fonction pour les valeurs :
a = 5
k = 0.04
omega = 0.6

dans l’intervalle 0 < x < 100 .