matplotlib Tutoriel
Commencer avec matplotlib
Recherche…
Remarques
Vue d'ensemble
matplotlib est une bibliothèque de traçage pour Python. Il fournit des API orientées objet pour l'intégration de tracés dans les applications. Il est similaire à MATLAB en termes de capacité et de syntaxe.
Il a été écrit à l'origine par JDHunter et est activement développé. Il est distribué sous une licence de style BSD.
Versions
Version | Versions Python prises en charge | Remarques | Date de sortie |
---|---|---|---|
1.3.1 | 2.6, 2.7, 3.x | Ancienne version stable | 2013-10-10 |
1.4.3 | 2.6, 2.7, 3.x | Version stable précédente | 2015-07-14 |
1.5.3 | 2.7, 3.x | Version stable actuelle | 2016-01-11 |
2.x | 2.7, 3.x | Dernière version de développement | 2016-07-25 |
Installation et configuration
Il existe plusieurs manières d’installer matplotlib, dont certaines dépendent du système que vous utilisez. Si vous avez de la chance, vous pourrez utiliser un gestionnaire de paquets pour installer facilement le module matplotlib et ses dépendances.
les fenêtres
Sur les machines Windows, vous pouvez essayer d'utiliser le gestionnaire de paquets pip pour installer matplotlib. Voir ici pour plus d'informations sur la configuration de pip dans un environnement Windows.
OS X
Il est recommandé d’utiliser le gestionnaire de paquets pip pour installer matplotlib. Si vous devez installer certaines des bibliothèques non-Python sur votre système (par exemple, libfreetype
), envisagez d'utiliser l' homebrew .
Si vous ne pouvez pas utiliser pip pour quelque raison que ce soit, essayez d’installer depuis le source .
Linux
Idéalement, le gestionnaire de paquets système ou pip devrait être utilisé pour installer matplotlib, en installant le paquet python-matplotlib
ou en exécutant pip install matplotlib
.
Si ce n'est pas possible (par exemple, vous n'avez pas de privilèges sudo sur la machine que vous utilisez), vous pouvez installer depuis la source en utilisant l'option --user
: python setup.py install --user
. En règle générale, cela va installer matplotlib dans ~/.local
.
Debian / Ubuntu
sudo apt-get install python-matplotlib
Fedora / Red Hat
sudo yum install python-matplotlib
Dépannage
Voir le site Web matplotlib pour des conseils sur la façon de réparer un matplotlib cassé.
Personnalisation d'un tracé matplotlib
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
Syntaxe impérative vs orientée objet
Matplotlib prend en charge à la fois la syntaxe orientée objet et la syntaxe impérative pour le traçage. La syntaxe impérative est intentionnellement conçue pour être très proche de la syntaxe Matlab.
La syntaxe impérative (parfois appelée syntaxe «state-machine») émet une chaîne de commandes qui agissent toutes sur la figure ou l'axe le plus récent (comme Matlab). La syntaxe orientée objet, d'autre part, agit explicitement sur les objets (figure, axe, etc.) d'intérêt. Un point clé du zen de Python stipule qu'explicite vaut mieux qu'implicite, donc la syntaxe orientée objet est plus pythonique. Cependant, la syntaxe impérative est pratique pour les nouveaux convertis de Matlab et pour l'écriture de petits scripts "jetables". Voici un exemple des deux styles différents.
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
Les deux exemples produisent le même tracé que celui illustré ci-dessous.
Tableaux bidimensionnels (2D)
Affiche un tableau bidimensionnel (2D) sur les axes.
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()