Graphisme et Maths se rencontrent

Nous mettrons au travail les librairies suivantes:

  • Numpy
  • Mathplotlib

Numpy:

Numpy  est une librairie pour Python, destinée à manipuler des matrices ou tableaux multidimensionnelles ainsi que des fonctions mathématiques opérant sur ces tableaux.

Plus précisément, cette bibliothèque fournit de multiple fonctions permettant de créer directement un tableau depuis un fichier ou au contraire de sauvegarder un tableau dans un fichier, et manipuler des vecteurs, matrices et polynômes.

Numpy est à la base de Scipy, regroupement de bibliothèques Python autur du calcul scientifique et beaucoup utilisé dans les domaines du “Big Data” et du “Data Science”.

De numpy, on utilisera seulement les deux fonctions:

  • arange([start,][stop,][step,]dtype=None)
  • sin(x)

arange() initialises une “array” (un tableau) que est hautement optimisé pour des calcules “vectorielles”, c’est à dire sans utiliser des boucles.

Example:

import numpy as np 

x = np.arange(-6.0, 6.0, 0.01)

y  = x**2

x est un tableau de 1100 éléments (6 – (-5))/0.01. Chaque élément prends une valeur que est «step» (0.01) plus élevée que la précédente, et ça à partir du minimum (-5) jusqu’à atteindre le maximum (6). Sans boucles, avec une seule instruction (y=x**2), on a calculé pour chaque élément (1100 fois) le carré de x. ça s’ appelle vectorisation.

Numpy contiens aussi des nombreuses fonctions mathématiques optimisées pour le calcule vectorisé. Par exemple, sin(x).

y2 = np.sin(x)

Matplotlib:

Matplotlib est la librairie de choix pour générer directement des graphiques à partir de Python.
Au fil des années, Matplotlib est une librairie puissante, compatible avec beaucoup de plateformes,
et capable de générer et de sauvegarder des graphiques dans beaucoup de formats différents.
De Matplotlib nous verrons la composante pyplot pour générer de graphiques de fonctions mathématiques (type X² ou sin(x) ou 3x+4). Après, nous apprendrons à embellir les graphiques (les notions de base). Voilà l’exemple qu’on expliquera au fur et à mesure.

import matplotlib.pyplot as plt                                                 
import numpy as np

# L’espace de travail
x = np.arange(-5.0, 6.0, 0.01)
# Les fonctions (mathématiques)
y = x**2
y2 = np.sin(x)
y3=x*0 +10
dy = 2*x -1

## Plot les fonctions et un point ou elles se touchent 
plt.plot(x, y)
plt.plot(x, y2)
plt.plot(x, y3,'y')
plt.plot(x, dy)
plt.plot(1, 1, 'or')

# Configuration du graphique
plt.title('Une belle composition!')
plt.xlabel('X')
plt.ylabel('Y')
plt.grid(True)
plt.legend(['y = x^2', 'y = 2x'], loc='upper left')

# Le graphique! 
plt.show()

Et Voilà le résultat!