Официальные документы: Matplotlib, pyplot и pylab: как они связаны?
Оба этих импорта сводятся к тому, что делают одно и то же и будут запускать один и тот же код, это просто разные способы импорта модулей.
Также обратите внимание, что matplotlib
есть два уровня интерфейса: уровень конечного автомата, управляемый pyplot
и объектно- ориентированный интерфейс pyplot
, построенный поверх, см. Как я могу прикрепить функцию pyplot к экземпляру фигуры?
pylab
это чистый способ массового импорта множества полезных функций (функция pyplot
конечного автомата, по большей части numpy
) в единое пространство имен. Основная причина, по которой это существует (насколько я понимаю), заключается в том, чтобы работать ipython
над созданием очень красивой интерактивной оболочки, которая более или менее копирует MATLAB (чтобы упростить переход и потому, что это хорошо для игры). Смотрите pylab.py
иmatplotlib/pylab.py
На каком-то уровне это чисто дело вкуса и немного зависит от того, что вы делаете.
Если вы не встраиваете графический интерфейс (либо используете неинтерактивный бэкэнд для массовых скриптов, либо один из предоставленных интерактивных бэкэндов), обычно вам нужно сделать следующее:
import matplotlib.pyplot as plt
import numpy as np
plt.plot(....)
что не загрязняет пространство имен. Я предпочитаю это, чтобы я мог отслеживать, откуда пришел материал.
Если вы используете
ipython --pylab
это эквивалентно бегу
from pylab import *
Теперь рекомендуется для новых версий ipython
использовать
ipython --matplotlib
который настроит все необходимые фоновые детали, чтобы интерактивные серверы работали нормально, но не будет ничего массового импорта. Вам нужно будет явно импортировать нужные модули.
import numpy as np
import matplotlib.pyplot as plt
хорошее начало.
Если вы встраиваете matplotlib
графический интерфейс, вы не хотите импортировать pyplot, так как это запустит дополнительные основные циклы графического интерфейса, а то, что вы должны импортировать, зависит от того, что именно вы делаете.