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

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

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

Или же:

import pylab
pylab.plot(...)

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

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

Ответ 1

Официальные документы: Matplotlib, pyplot и pylab: как они связаны?

Оба этих импорта сводятся к одному и тому же коду и запускают один и тот же код, это просто разные способы импорта модулей.

Также обратите внимание, что matplotlib имеет два уровня интерфейса: уровень pyplot автомата, управляемый pyplot и pyplot которого построен pyplot интерфейса OO, см. Как я могу присоединить функцию pyplot к экземпляру рисунка?

pylab - это чистый способ массового импорта целого ряда полезных функций (функция pyplot автомата pyplot, большая часть numpy) в одно пространство имен. Основная причина, по которой это существует (на мой ipython), заключается в том, чтобы работать с ipython для создания очень 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 в matplotlib вы не хотите импортировать pyplot, так как это запустит дополнительные основные циклы графического интерфейса, и то, что именно вы должны импортировать, зависит именно от того, что вы делаете.

Ответ 2

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