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() 
  • Как уменьшить количество тиков с помощью matplotlib
  • график matplotlib и imshow
  • моделирование движения толпы с помощью matplotlib
  • Как построить матрицу смешения со строкой, а не целое число в python
  • Функция imshow () не работает
  • python pylab plot нормальное распределение
  • Пользовательские столбцы ошибок
  • Матрицы ошибок Matplotlib отсутствуют
  • Python - лучший язык программирования в мире.