Какой рекомендуемый способ построения: matplotlib или pylab? [закрыто]

88

Я вижу, что могу строить на Python, используя:

import matplotlib
matplotlib.pyplot.plot(...)

Или:

import pylab
pylab.plot(...)

Оба они используют один и тот же код построения графика matplotlib .

Итак, что из них разработчики / документы Matplotlib в настоящее время рекомендуют как лучший метод для построения графика? Зачем?

Ашвин Нанджаппа
источник
1
возможный дубликат В чем разница между pylab и pyplot?
tacaswell
9
Самореференционное дублирование?
Безумный физик
4
Это не должно быть закрыто как основанное на мнении. Теперь есть четкий ответ из документов Matplotlib: Всегда используйтеmatplotlib.pyplot
Бернхард

Ответы:

104

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

Tacaswell
источник
19
Разница между pylab и pyplot заключается в том, что первый импортирует numpy в свое пространство имен. Это должно было сделать его более похожим на Matlab. Сейчас предпочтительнее использовать pyplot вместо pylab, потому что он чище.
Кристиан Алис
8

В документации по адресу https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , где также описывается разница между pyglot и pylab, говорится: «Хотя во многих примерах используется pylab, больше не рекомендуется ". . Так что я не вижу причин использовать pylab или беспокоиться об этом.

Апостолос
источник
1
Это должен быть принятый ответ. «Официальная» документация - это источник, в котором говорится, что pylab больше не рекомендуется.
dturvene