Какой рекомендуемый способ построения: matplotlib или pylab?
Я вижу, что я могу построить в Python, используя либо:
import matplotlib
matplotlib.pyplot.plot(...)
Или же:
import pylab
pylab.plot(...)
Оба из них используют один и тот же код построения matplotlib.
Итак, что из этого сообщество Python рекомендует как лучший метод для построения? Зачем?
2 ответа
Официальные документы: 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, так как это запустит дополнительные основные циклы графического интерфейса, и то, что именно вы должны импортировать, зависит именно от того, что вы делаете.
Документация по адресу https://matplotlib.org/faq/usage_faq.html, которая также описывает разницу между pyglot и pylab, гласит: "Хотя во многих примерах используется pylab, больше не рекомендуется "., Поэтому я не вижу причин использовать pylab или беспокоиться об этом.