matplotlib.pyplot против matplotlib.pylab

Я обычно использую следующий пакет для создания моих графиков: matplotlib.pylab . Однако есть также пакет matplotlib.pyplot .

Я не мог определить разницу между ними при их использовании. Поэтому мой вопрос заключается в следующем:

В чем разница между пакетами matplotlib.pylab и matplotlib.pyplot . В каких случаях вы бы советовали друг другу?

One Solution collect form web for “matplotlib.pyplot против matplotlib.pylab”

В FAQ :

Pyplot предоставляет интерфейс state-machine для базовой библиотеки построения в matplotlib. Это означает, что цифры и оси неявно и автоматически создаются для достижения желаемого участка ….

Pylab объединяет функциональность pyplot (для построения графика) с функциональностью numpy (для математики и для работы с массивами) в одном пространстве имен, что делает пространство имен (или среду) еще более похожим на MATLAB. Например, можно назвать функции sin и cos так же, как вы могли бы в MATLAB, а также иметь все функции pyplot.

Интерфейс pyplot обычно предпочтительнее для неинтерактивного построения (то есть сценария). Интерфейс pylab удобен для интерактивных вычислений и построения графиков, поскольку он сводит к минимуму типизацию. (мой акцент.)

Обратите внимание, что

 from pylab import * 

также выполняет

 from numpy import * 

Это перезаписывает многие встроенные функции Python, такие как:

 In [5]: import __builtin__ In [6]: import numpy as np In [5]: {name for name in set(dir(np)).intersection(dir(__builtin__)) if not name.startswith('__') and getattr(__builtin__, name) != getattr(np, name)} Out[5]: {'abs', 'all', 'any', 'max', 'min', 'round', 'sum'} 

Поэтому мне не нравится from pylab import * (или действительно from module import * для любого модуля), потому что он приводит к тому, что известные любимые имена Python ведут себя неожиданными способами (если вы не всегда помните, что from numpy import * загрязнило глобальное пространство имен.)

Например,

 In [32]: np.all([np.arange(3), np.arange(3)]) Out[32]: False 

в то время как

 In [33]: all([np.arange(3), np.arange(3)]) ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 
  • Расширить графики python до полноэкранного режима
  • Matplotlib 3D plot - 2D-формат для ввода данных?
  • Версия Matplotlib
  • Отрегулируйте расстояние только между двумя подзарядами в matplotlib
  • ipython ноутбук и ginput
  • Добавление 4-й переменной в 3D-график в Python
  • Симметричный планшет с matplotlib
  • Python 2.7 и PyDev - matplotlib и NumPy не работают
  • Python - лучший язык программирования в мире.