В этом курсе мы разберем библиотеки языка Python для визуализации данных. Это инструментарий аналитика, который позволяет:
- Смотреть на данные за длительный период в емкой форме
- Обнаруживать зависимости и тренды в данных
- Находить ошибки в данных и нехарактерные значения
- Исследовать статистические характеристики данных
- Строить различные гипотезы о данных перед их дальнейшим аналитическим подтверждением
После обучения вы сможете анализировать ваши данные с использованием популярных библиотек:
- Matplotlib
- Seaborn
- Plotly
В этом уроке мы разберем, по каким причинам аналитики используют указанные библиотеки, и как выглядит типичный порядок работы с ними.
Визуализация в анализе данных
Когда мы передаем информацию третьим лицам, нам часто не хватает места и времени для ее демонстрации. В таких случаях мы подаем информацию в графическом виде — например, составляем презентацию с инфографикой для доклада выступления на конференции.
Качественная презентация позволяет:
- Увидеть тренды изменения показателей компаний, рост или убывание прибыли
- Провести сравнительный анализ при переходе от одной стратегии развития бизнеса к другой
- Подчеркнуть зависимость одних показателей от других
Еще с помощью инструментов для визуализации можно посчитать статистические показатели или сделать агрегацию данных — допустим, найти сумму месячной прибыли по дневным показателям. Также эти инструменты позволяют построить графики и диаграммы самих данных или их агрегаций.
Аналитики должны обладать всеми перечисленными навыками. В рамках курса мы подробнее остановимся на последнем — построении графиков и диаграмм. Мы будем визуализировать данные с помощью библиотек языка Python.
Существует множество готовых открытых и коммерческих решений для аналитики. Но Python — это один из самых распространенных языков для решения задач, связанных с анализом данных и машинным обучением. Освоив Python, аналитик получает мощный инструмент, который помогает получать, обрабатывать и анализировать данные.
Библиотеки визуализации и типы графиков
Для визуализации данных на языке Python используют библиотеки:
- Matplotlib
- Seaborn
- Plotly
Matplotlib — это одна из первых библиотек языка Python, разработанная для визуализации данных. У нее гибкая конфигурация свойств и широкий спектр графиков, который покрывает востребованные аналитические задачи. Среди них наиболее популярны:
- Линейные графики
- Столбчатые и круговые диаграммы
- Гистограммы
Все эти графики можно построить с помощью Pyplot, специального модуля для Matplotlib. В коде название модуля Pyplot часто сокращается до plt
. Рассмотрим построение каждого из графиков подробнее.
Строим линейные графики
Для начала построим линейный график с помощью метода plot()
:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = [10, 15, 13, 17, 20, 22, 25]
plt.plot(x, y)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("Simple Line Graph")
plt.show()
В итоге мы получим такой график:
Строим столбчатые и круговые диаграммы
Для сравнительного анализа показателей используют столбчатые и круговые диаграммы. Построим круговой график:
# Данные
sizes = [25, 30, 15, 10]
labels = ["Apple", "Banana", "Orange", "Grapes"]
# Создание круговой диаграммы
plt.pie(sizes, labels=labels, autopct="%1.1f%%")
plt.title("Pie Chart")
plt.show()
Изучим получившуюся диаграмму. Весь круг — это общее количество фруктов в магазине. Сектора этого круга показывают отдельно количество яблок, бананов, апельсинов и винограда в процентах:
По этой диаграмме мы можем визуально оценить относительные показатели, даже не зная конкретного количества фруктов.
Строим гистограмму
Чтобы проанализировать распределение величин в данных, используют гистограмму — это график частоты встречаемости значений или частоты попадания значений в определенный числовой интервал.
Перейдем к примеру:
import numpy as np
# Создание случайных данных
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.title("Histogram")
plt.show()
Здесь мы дополнительно используем библиотеку NumPy для генерации случайной последовательности. В этом курсе мы будем иногда использовать конструкции NumPy, потому что библиотеки по визуализации данных используют ее в своих методах.
В итоге мы получим такую визуализацию:
Здесь каждый столбец — это количество значений, которые попадают в соответствующий интервал, отложенный на горизонтальной оси. В качестве параметра bins
мы указали, что хотим взять отрезок со всеми значениями и разбить его на 30 равных частей. Так на рисунке появился 30 столбцов.
Использование Matplotlib осложняется тем, что необходимо понимать ее внутреннее устройство: иерархию объектов и их методы. Чтобы облегчить задачу, поверх Matplotlib мы будем использовать библиотеки Seaborn и Plotly, более простые в использовании.
Строим гистограмму в Seaborn и Plotly
Построение гистограммы в Seaborn выглядит так:
import seaborn as sns
sns.histplot(data=data)
Результат аналогичен построению в Matplotlib:
Код для Plotly тоже достаточно лаконичен:
import plotly.express as px
fig = px.histogram(data)
fig.show()
Библиотека Plotly отличается от других интерактивностью. Например, построенные с ее помощью графические объекты могут изменять масштаб и подсвечивать значения в конкретных точках.
Выводы
Визуализация данных — это один из необходимых инструментов, которым должен владеть аналитик данных. Она позволяет обозревать большие объемы данных, что актуально для современных аналитических задач. В этом уроке мы познакомились с библиотеками языка Python для визуализации данных:
- Matplotlib
- Seaborn
- Plotly
С их помощью построили графики, которые часто используются аналитиками на практике:
- Линейные графики
- Гистограммы
- Столбчатые и круговые диаграммы
Далее мы погрузимся в основные возможности этих библиотек и все нюансы их использования.
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.