Je vois que je peux tracer en Python en utilisant soit:
import matplotlib
matplotlib.pyplot.plot(...)
Ou:
import pylab
pylab.plot(...)
Les deux utilisent le même code de traçage matplotlib .
Alors, laquelle de celles-ci les développeurs / documents de Matplotlib recommandent actuellement comme meilleure méthode pour tracer? Pourquoi?
python
matplotlib
Ashwin Nanjappa
la source
la source
matplotlib.pyplot
Réponses:
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 parpyplot
et l'interface OOpyplot
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 (lapyplot
fonction de machine d'état, la plupartnumpy
) dans un seul espace de nom. La principale raison pour laquelle cela existe (à ma connaissance) est de travailler avecipython
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). Voirpylab.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
cela équivaut à courir
from pylab import *
Il est maintenant recommandé que pour les nouvelles versions de
ipython
vous utilisezqui 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.la source
La documentation sur https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , qui décrit également la différence entre pyglot et pylab, déclare: "Bien que de nombreux exemples utilisent pylab, il n'est plus recommandé. " . Donc, je ne vois aucune raison d'utiliser pylab ou de m'inquiéter à ce sujet.
la source