Введение

Matplotlib — это «дедушка» библиотеки визуализации данных с Python. Джон Хантер создал его. Он создал его, чтобы попытаться воспроизвести возможности построения графиков MatLab (другой язык программирования) в Python. Поэтому, если вы знакомы с MatLab, matplotlib будет для вас естественным. Это отличная библиотека 2D и 3D-графики для создания научных фигур.

matplotlib

Matplotlib позволяет программно создавать воспроизводимые фигуры. Давайте научимся им пользоваться! Прежде чем продолжить эту лекцию, я рекомендую вам просто изучить официальную веб-страницу Matplotlib:


Монтаж

Чтобы установить matplotlib в вашей системе, вы должны запустить этот код в своей командной строке:

>> pip install matplotlib
Войти в полноэкранный режим

Выйти из полноэкранного режима


Импорт

Чтобы использовать matplotlib в нашем коде, сначала мы должны его импортировать. Мы будем импортировать matplotlib.pyplot модуль под названием plt (аккуратный способ):

matplotlib


Основной пример

Давайте начнем наше путешествие с очень простого примера с использованием двух массивов numpy. Вы также можете использовать списки, но вы, скорее всего, NumPy массивы или Панды столбцы (которые также ведут себя как массивы).

matplotlib

Мы можем создать очень простой линейный график, используя следующий код. Здесь мы создаем сюжет, а также даем названия:

matplotlib



Создание нескольких графиков на одном холсте

subplot() метод требует трех параметров, чтобы указать макет фигуры. Первый и второй аргументы указывают строки и столбцы, которые используются для структурирования макета. Третьим входом является индекс текущего графика.

matplotlib



Объектно-ориентированный метод Matplotlib

Теперь, когда мы увидели основы, давайте разберем все это более формальным введением в объектно-ориентированный API Matplotlib. Это означает, что мы создадим объекты фигур, а затем вызовем методы или атрибуты этих объектов.

Основная идея использования более формального объектно-ориентированного метода заключается в создании объектов-фигурок, а затем просто вызове методов или атрибутов этого объекта. Этот подход удобнее при работе с холстом, на котором есть несколько графиков.
Для начала создадим экземпляр фигуры. Затем мы можем добавить оси к этой фигуре:

matplotlib

Если вы понимаете пятую строчку, то можете идти. Код немного сложнее, но преимущество в том, что теперь у нас есть полный контроль над расположением осей графика, и мы можем легко добавить к фигуре более одной оси:

matplotlib


подсюжеты()

С subplot() функция, мы можем нарисовать несколько графиков на одном рисунке. Этот объект будет действовать как автоматический менеджер осей.

matplotlib

Затем, когда вы сделаете subplots() объект, вы можете сказать ему, сколько строк и столбцов вы хотите, и он создаст его в соответствии с вашим желанием.

matplotlib

Теперь давайте посмотрим, что на самом деле хранится внутри переменной axis

matplotlib

В основном переменная axes представляет собой массив осей для построения графика. Мы также можем перебирать этот массив и делать все, что захотим, например:

matplotlib

Распространенная проблема с matplolib перекрывается subplots или же figures. Мы можем использовать fig.tight_layout() или же plt.tight_layout() метод, который автоматически регулирует положение осей на холсте рисунка, чтобы не было перекрывающегося содержимого:

matplotlib



Размер изображения, соотношение сторон и DPI

Matplotlib позволяет соотношение сторон, Точек на дюйма также размер фигуры для указания при создании объекта Figure. Вы можете использовать figsize а также dpi аргументы ключевых слов.

  • figsize представляет собой кортеж ширины и высоты фигуры в дюймах
  • dpi это точек на дюйм (пиксель на дюйм).

Например:

matplotlib

Те же самые аргументы могут быть переданы менеджерам компоновки, например subplots функция:

matplotlib



Сохранение фигур

Matplotlib может генерировать высококачественный вывод в ряде форматов, включая PNG, JPG, EPS, SVG, PGFа также PDF. Чтобы сохранить фигуру в файл, мы можем использовать savefig метод в Figure учебный класс:

matplotlib

Здесь мы также можем опционально указать DPI и выбирать между различными выходными форматами:

matplotlib



Легенды

Вы можете использовать label=“label text” аргумент ключевого слова когда к рисунку добавляются графики или другие объекты, а затем используйте метод легенды без аргументов, чтобы добавить легенду к рисунку:

matplotlib

Обратите внимание, как наша легенда пересекается с частью реального сюжета! Функция легенды принимает аргумент ключевого слова loc, который указывает, где на рисунке должна быть нарисована легенда. Допустимые значения loc являются числовыми идентификаторами для различных мест, где легенда можно нарисовать. Я предлагаю вам просмотреть страницу документации для получения информации. Это одни из самых частых loc ценности:

matplotlib



Настройка цветов, ширины линий, типов линий

Matplotlib дает вам множество возможностей для настройки цвета, ширина линииа также типы линий. есть базовый MATLAB-подобный синтаксис.

Цвета с синтаксисом, подобным MatLab

С помощью matplotlib мы можем определять цвета линий и других графических элементов несколькими способами. Прежде всего, мы можем использовать синтаксис, подобный MATLAB, где 'b' означает blue, 'g' означает greenи т. д. Также поддерживается MATLAB API для выбора стилей линий, где, например, 'b.-' означает a blue line with dots:

matplotlib

Цвета с color = parameter

С color а также alpha аргументы ключевого словамы также можем определить цвета по их names или же RGB hex codesи мы можем добавить alpha value если мы хотим. Alpha указывает opacity.

matplotlib

Стили линий и маркеров

Чтобы изменить ширину линии, мы можем использовать linewidth или же lw ключевой аргумент. Стиль линии можно выбрать с помощью linestyle или же ls аргументы ключевого слова:

fig, ax = plt.subplots(figsize=(12,6))

ax.plot(x, x+1, color="red", linewidth=0.25)
ax.plot(x, x+2, color="red", linewidth=0.50)
ax.plot(x, x+3, color="red", linewidth=1.00)
ax.plot(x, x+4, color="red", linewidth=2.00)

# possible line style options ‘-‘, ‘–’, ‘-.’, ‘:’, ‘steps’
ax.plot(x, x+5, color="green", lw=3, linestyle='-')
ax.plot(x, x+6, color="green", lw=3, ls='-.')
ax.plot(x, x+7, color="green", lw=3, ls=':')

# custom dash
line, = ax.plot(x, x+8, color="black", lw=1.50)
line.set_dashes([5, 10, 15, 10]) # format: line length, space length, ...

# possible marker symbols: marker="+", 'o', '*', 's', ',', '.', '1', '2', '3', '4', ...
ax.plot(x, x+ 9, color="blue", lw=3, ls='-', marker='+')
ax.plot(x, x+10, color="blue", lw=3, ls='--', marker='o')
ax.plot(x, x+11, color="blue", lw=3, ls='-', marker='s')
ax.plot(x, x+12, color="blue", lw=3, ls='--', marker='1')

# marker size and color
ax.plot(x, x+13, color="purple", lw=1, ls='-', marker='o', markersize=2)
ax.plot(x, x+14, color="purple", lw=1, ls='-', marker='o', markersize=4)
ax.plot(x, x+15, color="purple", lw=1, ls='-', marker='o', markersize=8, markerfacecolor="red")
ax.plot(x, x+16, color="purple", lw=1, ls='-', marker='s', markersize=8, markerfacecolor="yellow", markeredgewidth=3,markeredgecolor="green");
Войти в полноэкранный режим

Выйти из полноэкранного режима

matplotlib



Управление внешним видом оси

В этом разделе мы рассмотрим управление свойствами размера оси на рисунке matplotlib.

Диапазон сюжета

Мы можем настроить диапазоны осей, используя set_ylim а также set_xlim методы в объекте оси или axis('tight') для автоматического получения «плотно подогнанных» диапазонов осей:

matplotlib

Специальные типы сюжетов

Мы можем создать множество специализированных графиков, таких как столбчатые диаграммы, гистограммы, точечные диаграммы и многое другое. Большинство из этих типов графиков мы фактически создадим, используя Seaborn, библиотека статистических графиков для Python. Но вот несколько примеров таких типов сюжетов:

matplotlib

matplotlib

matplotlib



дальнейшее чтение