python
April 29, 2019

Matplotlib для постпроцессинга

Обычно я использую matplotlib для визуализации данных.

Прежде всего, есть несколько полезных вещей, которые вы должны знать об использовании пакета.

Импорт matplotlib

Так же, как мы используем сокращение np для NumPy и сокращение pd для Pandas, мы будем использовать некоторые стандартные сокращения для импорта Matplotlib:

import matplotlib as mpl
import matplotlib.pyplot as plt

Настройка стилей

Мы будем использовать директиву plt.style для выбора подходящих стилей для наших графиков. Здесь мы установим классический стиль, который гарантирует, что создаваемые нами графики будут использовать классический стиль Matplotlib:

plt.style.use('classic')

Обратите внимание, что используемые здесь таблицы стилей поддерживаются в Matplotlib версии 1.5. Если вы используете более раннюю версию Matplotlib, доступен только стиль по умолчанию.

Как отобразить графики

Лучшее использование библиотеки Matplotlib зависит от того, как вы хотите ее использовать. Существует примерно три контекста использования Matplotlib: в скрипте, в терминале IPython или в записной книжке IPython.

Построение из скрипта

Если вы используете Matplotlib из скрипта, функция plt.show() - ваш друг. plt.show() запускает цикл обработки событий, ищет все активные в данный момент объекты фигур и открывает одно или несколько интерактивных окон, которые отображают вашу фигуру или фигуры.

Так, например, у вас может быть файл myplot.py, содержащий следующее:

# ------- file: myplot.py ------
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))

plt.show()

Затем вы можете запустить этот скрипт из командной строки, что приведет к открытию окна с отображаемой фигурой:

$ python myplot.py

Следует помнить одну вещь: команда plt.show() должна использоваться только один раз за сеанс Python, и чаще всего ее можно увидеть в самом конце скрипта. Множественные команды show() могут привести к непредсказуемому поведению, и их в основном следует избегать.

Построение из оболочки IPython

Может быть очень удобно использовать Matplotlib в интерактивном режиме в оболочке IPython. IPython хорошо работает с Matplotlib, если вы укажете режим Matplotlib. Чтобы включить этот режим, вы можете использовать магическую команду %matplotlib после запуска ipython:

In[1]: %matplotlib
Using matplotlib backend: TkAgg

In[2]: import matplotlib.pyplot as plt

В этот момент любая команда plt.plot откроет окно рисунка, и можно будет запустить дополнительные команды для обновления графика. Некоторые изменения (такие как изменение свойств уже нарисованных линий) не будут отрисовываться автоматически. Для принудительного обновления используйте plt.draw(). Использование plt.show() в режиме %matplotlib не требуется.

Построение из записной книжки IPython

Записная книжка IPython - это интерактивный инструмент анализа данных на основе браузера, который может объединять комментарии, код, графику, элементы HTML и многое другое в один исполняемый документ.

Интерактивное построение графиков в записной книжке IPython может быть выполнено с помощью команды %matplotlib и работает аналогично оболочке IPython. В записной книжке IPython у вас также есть возможность встраивать графику непосредственно в записную книжку с двумя возможными вариантами:

%matplotlib notebook приведет к появлению интерактивных графиков внутри ноутбука
%matplotlib inline приведет к статическим изображениям вашего графика, встроенным в блокнот

Результат:

здесь могла бы быть ваша реклама

Оффтопик

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


Статья подготовлена и написана для канала Hello World.


Благодарю всех за внимание.