Введение в Matplotlib в Python

Опубликовано: 2022-10-04

Matplotlib — это библиотека для построения графиков Python, которую специалисты по машинному обучению в основном используют для создания статических и интерактивных визуализаций.

Что такое Матплотлиб

Mathplotlib — это создание Джона Д. Хантера в 2003 году, выпущенное 8 мая 2021 года и имеющее текущую версию 3.4.2.

Эта библиотека в основном написана на Python, а остальная часть написана на языке C и JavaScript, что делает ее совместимой с платформой.

Matplotlib использует NumPy, числовое расширение Python. Его расширение с помощью NumPy повышает его жизнеспособность в качестве альтернативы с открытым исходным кодом и делает его более предпочтительным, чем MATLAB.

Для приложений Python с графическим интерфейсом Matplotlib позволяет строить на нем статические графики с помощью объектно-ориентированного API, с которым он поставляется.

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

Вы можете использовать Matplotlib для создания графиков в средах, включая оболочку Python, блокнот Jupyter,
Jupyter lab, а также с использованием Pycharm или Anaconda и на серверах веб-приложений, таких как Flask и Django, на различных платформах.

Как и в MATLAB, вы можете в значительной степени управлять графиками с точки зрения шрифтов, линий, цветов и стилей.

После краткого введения библиотеки Matplotib в Python давайте посмотрим, как мы можем настроить ее в наших системах.

Настройка среды Matplotlib

Как и любой другой пакет и библиотеку Python, вы можете установить предварительно скомпилированную библиотеку Matplotlib и ее пакеты во всех операционных системах с помощью диспетчера пакетов pip.

Конечно, это требует, чтобы вы сначала установили Python и пакет pip в своей системе.

Следующие команды отображают версию Python и pip, чтобы убедиться, что эти инструменты уже установлены.

Проверьте, установлен ли Python

 Python --version

Проверьте, установлен ли pip

 pip -V

Установить Mathplotlib

Приведенная ниже команда устанавливает пакет Matplotlib из индекса пакетов Python (PyPI).

 python -m pip install matplotlib

Эта команда загружает и устанавливает соответствующие пакеты Matplotlib. После завершения установки вы должны увидеть сообщение об успешной установке.

Чтобы убедиться, что Matplotlib успешно установлен, введите следующую команду, которая отобразит версию Matplotlib в вашей командной строке.

 import matplotlib matplotlib.__version__

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

Однако эта конкретная нескомпилированная установка Matplolib может быть сложной, особенно для начинающих пользователей Matplotlib. Поэтому, почему бы просто не использовать однострочную команду для установки библиотеки за считанные секунды?

После установки Matplotlib импортируйте пакет в свою среду, чтобы получить доступ к его утилитам.

Параметры построения графиков Matplotlib

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

Эти варианты построения включают в себя:

№1. Гистограммы

Гистограммы, известные как гистограммы, являются подходящим вариантом для визуализации количественного сравнения значений в одной категории.

гистограмма-1

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

Matplotlib использует plt.bar() для создания гистограммы.

Кроме того, вы можете использовать больше функций для управления этим графиком. Например, функции plt.xlabel() и plt.ylabel() помечают оси x , y графика соответственно.

Функция plt.title() также позволяет дать название вашему графику, а plt.savefig() сохраняет график. Наиболее важная функция plot.show() отображает график.

№ 2. Круговые диаграммы

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

На круговых диаграммах данные отображаются в процентах. Вся область диаграммы соответствует процентам всех данных, а отдельные секторы круговой диаграммы представляют части процентов данных.

круговая диаграмма

Matplotlib использует plt.pie() , которая рисует и корректирует параметры круговой диаграммы.
Дополнительные параметры, такие как autopct , которые печатают значение круговой диаграммы с точностью до 1 знака после запятой, полезны при построении круговых диаграмм.

Бизнес-организации находят круговые диаграммы полезными для представления соответствующей информации, такой как операции, продажи или ресурсы.

№3. Гистограмма

Гистограмма отображает числовое распределение данных. Он использует непрерывные интервалы для разделения данных на отдельные разделы.

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

гистограмма

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

№ 4. Линейные графики

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

линейный график

Линейные графики важны для отслеживания изменения значений данных с течением времени.

№ 5. Графики рассеяния

Диаграммы рассеивания указывают на взаимосвязь, включая корреляцию между переменными в данных. Это также полезно для выявления выбросов.

точечная диаграмма

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

Как создавать графики в Matplotlib

Matplotlib использует разные функции для создания разных графиков. Он также использует очень мало строк кода для создания сюжета.

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

№1. Барный участок в Matplotlib

Гистограммы, как объяснялось выше, отображают категории данных с помощью полос и осей, которые представляют собой сравнение категорий на одной оси и соответствующих значений категорий на другой оси.

Функция bar() в Matplotlib принимает различные макеты аргументов для описания макета столбцов, как показано ниже.

 plt.bar(x, y, height, width, bottom, align)

Параметры x и y представляют значения координат x и значения координат y полосы на графике. Параметр ширины представляет ширину полосы, а параметр высоты представляет высоту полосы.

Например, давайте представим количество собак и кошек в приюте для животных с именем x.

 import matplotlib.pyplot as plt import numpy as np x = ["Cats", "Dogs"] plt.xlabel("Cats and Dogs in Shelter") plt.ylabel("No. of animals in Shelter") plt.title("Number of cats and dogs in shelter x") y = [300, 350] plt.bar(x, y, color ='black', width = 0.5)

Выход:

bar_plot
Вывод гистограммы в Mathplotlib

Как и в нашем примере выше, вы можете дополнительно указать цвет полос, используя атрибут цвета. Кроме того, plt.xlabel and p.ylabel name the x and y axes, а plt.title называет график.

№ 2. Как создать круговую диаграмму

Matplotlib использует функцию pie() , которая поставляется с модулем pyplot , для построения круговой диаграммы.
Функция представляет данные для построения в виде массива.

Синтаксис:

 matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Параметр colors задает цвет секторов круговой диаграммы. Вы можете использовать массив значений, чтобы указать цвет для каждого фрагмента.

Чтобы дополнительно включить сведения о каждом фрагменте в круговой диаграмме, аргумент autopct добавляет числовые проценты, которые представляет каждый фрагмент, используя нотацию форматирования Python String. Разрыв в качестве аргумента принимает массив значений, начинающихся с 0,1, чтобы определить расстояние среза от центра круговой диаграммы.

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

 import matplotlib.pyplot as plt import numpy as np y = np.array([25, 10, 45, 20]) mylabels = ["w", "x", "y", "z"] explodevalues = [0.1, 0.2, 0, 0] colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red'] plt.title("Resources allocated for a random project") plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct='%1.1f%%', shadow = True) plt.show()

Выход:

круговая диаграмма
Вывод круговой диаграммы в Mathplotlib

На приведенном выше графике показана круговая диаграмма с четырьмя сегментами, помеченными w, x, y и z соответственно. Значения разнесения определяют, насколько далеко от центра круговой диаграммы будут располагаться срезы.

На приведенной выше диаграмме x находится дальше, потому что его значение разнесения больше, чем у остальных. Атрибут shadow добавляет тень к круговой диаграмме, как показано на изображении, в то время как autopct устанавливает относительный процент ко всей круговой диаграмме, которую представляет каждый срез.

№3. Создание графика гистограммы

С гистограммой мы будем использовать ряд интервалов для представления диапазона заданных значений по оси X.
Ось Y, с другой стороны, будет представлять информацию о частоте.

В отличие от других графиков, построение гистограммы в Matplotlib требует некоторых предопределенных шагов, которые необходимо выполнить для создания графика.

Эти шаги включают в себя:

  1. Создайте корзину диапазонов из набора значений данных, которые у вас есть. Вы можете использовать np.random.normal() , которая может генерировать для вас случайные значения.
  2. Используя серию интервалов, распределите значения в диапазоне значений.
  3. Подсчитайте значения, попадающие в каждый конкретный интервал.
  4. Теперь используйте matplotlib.pyplot.hist() для создания гистограммы.

Функция hist() принимает несколько параметров , в том числе:

x - это представляет последовательность массива

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

диапазон — определяет верхний и нижний диапазон ячеек.

align — этот параметр управляет выравниванием гистограммы. Будь то левый, правый или средний.

цвет – определяет цвет полос.

rwidth — устанавливает относительную ширину столбцов гистограммы по отношению к ширине интервала.

log – параметр log определяет логарифмическую шкалу по оси гистограммы.

В следующем примере строится гистограмма с определенными значениями.

 from matplotlib import pyplot as plt x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5, 50, 60, 70, 80] plt.hist(x) plt.title(Histogram plot example') plt.xlabel('x axis') plt.ylabel('frequency') plt.show()

Выход:

Изображение, чтобы показать график гистограммы
Вывод графика гистограммы в Mathplotlib

№ 4. Линейный график в Matplotlib

Matplotlib использует свою подбиблиотеку под названием pyplot , которая поставляется с различными функциями, помогающими в ее реализации.

Мы используем функцию plot() , которая является общей функцией, которая поставляется с pyplot для построения линейных графиков и других типов линейных графиков, включая кривые графики и многострочные графики. Создание этих различных типов графиков зависит от значений, которые вы передаете на ось Y.

При построении графика импортируйте matplotlib.pyplot и Numpy, которые рисуют диаграммы. Метод plot(x,y) создает линейный график, передавая случайные значения аргументам x и y.

Кроме того, вы можете передать переменную метки, которая помечает график. Функция title дополнительно называет заголовок графика, тогда как функции xlabel и ylabel называют оси. Наконец, функция show() отображает график.

Например:

 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 5, 10) y = 3*x + 2 plt.title('Line plot example') plt.xlabel('x axis') plt.ylabel('y axis') plt.plot(x, y) plt.show()

Результат:

line_plot-1
Вывод линейного графика в Mathplotlib

np.linspace возвращает на графике набор равномерно распределенных чисел за определенный интервал для значений x. Это создаст массив из 10 значений в диапазоне от 0 and 5 . Значения y создаются из уравнения, в котором используются соответствующие значения x.

Создание точечных диаграмм

Matplotlib использует метод scatter() для создания этого графика.
Этот метод принимает следующие параметры.

 matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None)

Параметры x_axis_data и y_axis_data нельзя оставлять пустыми, в отличие от остальных параметров, которые могут быть необязательными и иметь значение None. В то время как аргумент x_axis_data определяет массив данных для оси x, y_axis_data задает массив данных для оси y.

Пример точечной диаграммы в matplotlib

 import matplotlib.pyplot as plt x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16] y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35] plt.title('Scatter plot example') plt.xlabel('x variable') plt.ylabel('y variable') plt.scatter(x, y, c ="green") # To show the plot plt.show()

Его вывод будет выглядеть так:

Изображение, чтобы показать график рассеяния в Matplotib
Вывод точечной диаграммы в Mathplotlib

Что такое subplot() в matplotlib

Функция subplot() может использоваться для рисования нескольких графиков на одной фигуре Matplotlib. Это позволяет просматривать и сравнивать несколько графиков на рисунке.

Эта функция вернет кортеж с тремя аргументами; строки и столбцы в качестве первого и второго аргумента соответственно, а текущий индекс графика в качестве третьего аргумента.

Строки и столбцы четко определяют макет Matplotlib.

Следовательно, plt.subplot(2, 1, 1) , например, будет отображать фигуру Matplotlib с двумя строками и одним столбцом, и этот график будет первым графиком.

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

Построение этих двух графиков создаст их друг над другом, как в примере ниже.

 import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(2, 1, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(2, 1, 2) plt.plot(x,y) plt.show()

Вывод приведенного выше примера будет выглядеть так, как показано на изображении ниже.

использование подзаголовка для создания двух графиков друг над другом

Используя другой пример, давайте воспользуемся функцией subplot для построения двух фигур с одной строкой и двумя столбцами. Это отобразит графики бок о бок.

 import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(1, 2, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(1, 2, 2) plt.plot(x,y) plt.show()

В приведенном выше примере будет отображаться следующий результат.

подсюжет2

Ну, это было интересно интерактивным, вы так не думаете?

Заключительные слова

Matplotlib — широко используемая библиотека визуализации в Python. Его интерактивность и простота использования даже для новичков делают его еще лучшим инструментом для построения графиков в Python.

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

Конечно, в Python есть несколько других библиотек, которые специалисты по машинному обучению и специалисты по данным могут использовать для создания визуализаций.

Вы можете изучить больше графиков, которые вы можете создать с помощью Matplotlib, и какие функции вы будете использовать для создания графика.

Удачного заговора!