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


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

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

или:

import pylab
pylab.plot(...)

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

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

2 71

2 ответа:

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

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

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

pylab это чистый способ массового импорта целого ряда полезных функций (pyplot функция государственной машины, большая часть numpy) в единое пространство имен. Основная причина, по которой это существует (в моем понимании), - это работа с ipython чтобы сделать очень хорошую интерактивную оболочку, которая более или менее повторяет MATLAB (чтобы сделать переход проще и потому, что это хорошо для игры). Смотрите pylab.py и matplotlib/pylab.py

на каком-то уровне, это чисто дело вкуса и зависит от того, что вы делаете.

если вы не внедрение в gui (либо с помощью неинтерактивного бэкэнда для массовых скриптов, либо с помощью одного из предоставленных интерактивных бэкэндов) типичная вещь, которую нужно сделать, это

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

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