Официальные документы: 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, так как это запустит дополнительные основные циклы графического интерфейса, а то, что вы должны импортировать, зависит от того, что именно вы делаете.