Аналитика данных: Matplotlib

Узнать установленные модули

help(“modules”)

Python предоставляет одну из самых популярных библиотек для построения графиков под названием Matplotlib. Это кроссплатформенный проект с открытым исходным кодом для создания 2D-графиков на основе данных в массиве. Обычно он используется для визуализации данных и представлен в виде различных графиков.

Matplotlib изначально задуман Джоном Д. Хантером в 2003 году. Последняя версия matplotlib – 2.2.0, выпущенная в январе 2018 года.

Прежде чем начать работу с библиотекой matplotlib, нам необходимо установить ее в нашей среде Python.

Установка Matplotlib
Введите следующую команду в своем терминале и нажмите клавишу ВВОД.

pip install matplotlib
Приведенная выше команда установит библиотеку matplotlib и ее пакет зависимостей в операционной системе Windows. Разберемся как построить график функции на Python при помощи Matplotlib.

Базовая концепция Matplotlib
График состоит из следующих частей. Давайте разберемся с этими частями.


Figure: это целая фигура, которая может содержать одну или несколько осей(графиков). Мы можем думать о figure как о холсте, на котором хранятся сюжеты.

Axes: фигура может содержать несколько осей. Он состоит из двух или трех (в случае 3D) объектов Axis.

Каждая ось состоит из заголовка, x-метки и y-метки.

Axis: оси – это количество объектов, похожих на линии, которые отвечают за создание пределов графика.

Artist: это все, что мы видим на графике, например, текстовые объекты, объекты Line2D и объекты коллекций. Привязаны к Axes.

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

Мы можем быстро построить график с помощью pyplot. Давайте посмотрим на следующий пример.

Базовый пример построения графика
Программа для создания базового примера простого графика следующая:

from matplotlib import pyplot as plt

#построение графика

plt.plot([1,2,3],[4,5,1])

#вывод на дисплей

plt.show()

Выход:

plt.plot([1,2,3],[4,5,1]) содержит координаты точек графика

[1,2,3] в горизонтальной плоскости.

[4,5,1] в вертикальной.

from matplotlib import pyplot as plt

# создаем переменные и передаем значение координат

a = 1
b = 2
c = 4

# передаем переменные в график (в горизонтали)
plt.plot([a,b,c],[4,5,1])

plt.show()

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

  1. Линейный график
    Линейный график используется для отображения информации в виде серии линий. Его легко строить.

Пример:

from matplotlib import pyplot as plt

x = [1,2,3]
y = [10,11,12]

plt.plot(x,y)

plt.title(“Line graph”)
plt.ylabel(‘Y axis’)
plt.xlabel(‘X axis’)
plt.show()

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

from matplotlib import pyplot as plt
from matplotlib import style

style.use(‘ggplot’)
x = [10, 12, 13]
y = [8, 16, 6]
x2 = [8, 15, 11]
y2 = [6, 15, 7]
plt.plot(x, y, ‘b’, label=’line one’, linewidth=5)
plt.plot(x2, y2, ‘r’, label=’line two’, linewidth=5)
plt.title(‘Epic Info’)
fig = plt.figure()
plt.ylabel(‘Y axis’)
plt.xlabel(‘X axis’)

plt.show()

style.use(‘ggplot’)

Выбранный стиль таблицы

x = [10, 12, 13]

переданные координаты оси х

y = [8, 16, 6]

переданные координаты оси y

plt.plot(x, y, ‘b’, label=’line one’, linewidth=5)

передача координат, цвета линии (b), толщины линии (linewidth=5)

plt.ylabel(‘Y axis’)

надпись оси

Полезная ссылка

Штрих-код 

В этой демонстрации показано, как создать штрих-код.

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

Сами данные отображаются с imshowиспользованием

  • code.reshape(1, -1)чтобы превратить данные в двумерный массив с одной строкой.
  • imshow(..., aspect='auto')чтобы разрешить неквадратные пиксели.
  • imshow(..., interpolation='nearest')для предотвращения размытия краев. Этого не должно происходить в любом случае, потому что мы точно настроили ширину фигуры в пикселях, но просто на всякий случай.
import matplotlib.pyplot as plt
import numpy as np


code = np.array([
    1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,
    0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0,
    1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1,
    1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1])

pixel_per_bar = 4
dpi = 100

fig = plt.figure(figsize=(len(code) * pixel_per_bar / dpi, 2), dpi=dpi)
ax = fig.add_axes([0, 0, 1, 1])  # span the whole figure
ax.set_axis_off()
ax.imshow(code.reshape(1, -1), cmap='binary', aspect='auto',
          interpolation='nearest')
plt.show()

Установка пакета и основные возможности

Полезная ссылка

Строим трехмерные графики