jeudi 15 janvier 2015

Introduction Matplotlib

Matplotlib est une bibliothèque  Python distribuée librement et gratuitement sous licence gratuite, elle permet de tracer et de visualiser des données sous formes de graphiques. Elle est généralement utilisée avec les bibliothèques python de calcul scientifique numpy et scipy. Les trois composants réunis représentent une bonne alternative à Matlab.

 
Matplotlib est facile à installer, plusieurs méthodes sont possibles:
  • Depuis http://matplotlib.org/
  • En utilisant l'outil pip
  • En utilisant le paquet correspondant à la distribution (Machine Unix), exemples:
    • Ubuntu : sudo apt-get install Python-matplotlib
    • Debian : sudo apt-get install python-matplotlib
    • Centos7:  yum install python-matplotlib (en mode admin 'su')

Ci après quelques exemples simples.

1. Tracé de la fonction sinus:
Ce premier exemple, très simple, permet de tracer la fonction sinus. Dans ce programme on doit d'abord importer le module maplotlib.pyplot, appeler la fonction plot du module et afficher la fenêtre avec la fonction show:

import numpy as np
import matplotlib.pyplot as plt

#un tableau contenant 100 valeurs entre 0 et 2pi
x=np.linspace(0,2*pi,100)

#tracé de la courbe passant par les points de coordonnées (x, sin(x))
plt.plot(x, sin(x)) 

#affichage de la fenêtre
plt.show()



2. Tracé d'une fonction à deux variables:
Ce second exemple permet de tracer une fonction à deux variables sous forme d'image, ceci en utilisant un système de couleur correspondant aux valeurs

import matplotlib.pyplot as pl

#définition de la fonction

def f(x, y):

    return (1-x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)

n = 50
x = np.linspace(-3, 3, 4 * n)
y = np.linspace(-3, 3, 3 * n)
X, Y = np.meshgrid(x, y)

pl.imshow(f(X, Y))
pl.show()



3.Tracé d'une fonction à deux variables en 3D

Ce troisième exemple permet de tracer  la même fonction mais cette fois en 3D

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = Axes3D(fig)

X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)

X,Y=np.meshgrid(X, Y)
W=(1-X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)

ax.plot_surface(X, Y, W, rstride=1, cstride=1, cmap=plt.cm.jet) 
plt.show() 




Aucun commentaire:

Enregistrer un commentaire

Decorators dans python

La decoration dans Python est une méthode simple et statique qui permet de modifier un élément. Un decorator dans python est un appelab...