Documents officiels: Matplotlib, pyplot et pylab: comment sont-ils liés?
Ces deux importations se résument à faire exactement la même chose et exécuteront exactement le même code, ce sont juste des façons différentes d'importer les modules.
Notez également qu'il matplotlib
a deux couches d'interface, une couche de machine d'état gérée par pyplot
et l'interface OO pyplot
est construite au-dessus de, voir Comment puis-je attacher une fonction pyplot à une instance de figure?
pylab
est un moyen propre d'importer en masse toute une série de fonctions utiles (la pyplot
fonction de machine d'état, la plupart numpy
) dans un seul espace de nom. La principale raison pour laquelle cela existe (à ma connaissance) est de travailler avec ipython
pour créer un très beau shell interactif qui réplique plus ou moins MATLAB (pour faciliter la transition et parce qu'il est bon pour jouer). Voir pylab.py
etmatplotlib/pylab.py
À un certain niveau, c'est purement une question de goût et dépend un peu de ce que vous faites.
Si vous n'intégrez pas une interface graphique (soit en utilisant un backend non interactif pour les scripts en masse, soit en utilisant l'un des backends interactifs fournis), la chose typique à faire est
import matplotlib.pyplot as plt
import numpy as np
plt.plot(....)
ce qui ne pollue pas l'espace de nom. Je préfère cela pour pouvoir savoir d'où viennent les choses.
Si tu utilises
ipython --pylab
cela équivaut à courir
from pylab import *
Il est maintenant recommandé que pour les nouvelles versions de ipython
vous utilisez
ipython --matplotlib
qui mettra en place tous les détails d'arrière-plan appropriés pour que les backends interactifs fonctionnent correctement, mais n'importera rien en masse. Vous devrez importer explicitement les modules souhaités.
import numpy as np
import matplotlib.pyplot as plt
est un bon début.
Si vous matplotlib
intégrez une interface graphique, vous ne voulez pas importer pyplot car cela lancera des boucles principales supplémentaires dans l'interface graphique, et ce que vous devez importer dépend exactement de ce que vous faites.