Seaborn — это мощная библиотека для визуализации данных в Python, построенная на основе Matplotlib. Она предоставляет высокоуровневый интерфейс для создания привлекательных и информативных статистических графиков. Давайте рассмотрим основные функции Seaborn с примерами кода и научимся превращать данные в визуальные истории.
Установка Seaborn
Перед началом работы убедитесь, что у вас установлена библиотека Seaborn. Вы можете установить её с помощью pip:
pip install seaborn
Основные функции Seaborn
1. Загрузка набора данных
Seaborn предоставляет несколько встроенных наборов данных, которые можно использовать для визуализации. Например, набор данных tips, содержащий информацию о чаевых в ресторанах:
import seaborn as sns
# Загрузка набора данных tips
tips = sns.load_dataset("tips")
# Отображение первых 5 строк набора данных
tips.head()
2. Гистограмма
Гистограммы позволяют визуализировать распределение переменной. Пример создания гистограммы для общего счета:
import seaborn as sns
import matplotlib.pyplot as plt
# Создание гистограммы для отображения распределения общего счета
sns.histplot(data=tips, x="total_bill", bins=30, kde=True, color='skyblue')
# Добавление заголовка к графику
plt.title("Распределение общего счета")
# Отображение графика
plt.show()
sns.histplot()
— функция для построения гистограммы.
Параметры:
- data=tips — указываем набор данных.
- x="total_bill" — ось X будет представлять общую сумму счета.
- bins=30 — количество корзин (или интервалов) для гистограммы (можно настроить по желанию).
- kde=True — добавляет линию ядерной оценки плотности (KDE) для лучшего понимания распределения.
- color='skyblue' — настройка цветовой палитры графика
3. Диаграмма рассеяния (Scatter Plot)
Диаграммы рассеяния используются для визуализации взаимосвязи между двумя переменными:
# Создание диаграммы рассеяния для отображения зависимости чаевых от общего счета
sns.scatterplot(x="total_bill", y="tip", hue="sex", data=tips)
plt.title("Зависимость чаевых от общего счета")
plt.show()
sns.scatterplot()
— функция для построения диаграммы рассеяния.
Параметры:
- x="total_bill" — ось X будет представлять общую сумму счета.
- y="tip" — ось Y будет представлять сумму чаевых.
- data=tips — указываем набор данных.
- hue="sex" — разбиваем данные по дополнительной категории.
4. Линейный график (Line Plot)
Линейные графики помогают визуализировать тренды во времени:
# Загрузка набора данных fmri
fmri = sns.load_dataset("fmri")
# Создание линейного графика для отображения тренда сигнала по времени
sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri)
plt.title("Тренд сигнала по времени")
plt.show()
sns.lineplot()
— функция для построения линейного графика.
Параметры:
- x="timepoint" — ось X будет представлять временные точки.
- y="signal" — ось Y будет представлять значение сигнала.
- data=fmri — указываем набор данных.
- hue="event" — разбить данные по категории событие (stim или не stim)
5. Столбчатая диаграмма (Bar Plot)
Столбчатые диаграммы показывают средние значения для категориальных переменных:
import numpy as np
# Создание столбчатой диаграммы для отображения средних чаевых по дням
sns.barplot(x="day", y="tip", data=tips, estimator=np.mean)
plt.title("Средние чаевые по дням")
plt.show()
sns.barplot()
используется для отображения среднего (или другого указанного агрегирования) числового значения для разных категорий. В данном случае она вычисляет средние чаевые (tip) для каждого дня недели (day).
Параметры:
- x: Указывает категориальную переменную (дни недели).
- y: Указывает числовую переменную (чаевые).
- data: Набор данных, который в данном случае — это tips.
- estimator: Этот параметр указывает функцию, используемую для агрегации значений. Здесь используется np.mean для вычисления средних чаевых.
Эта диаграмма позволяет быстро сравнить средние чаевые в разные дни, предоставляя информацию о поведении клиентов и тенденциях, связанных с чаевыми.
6. Коробчатая диаграмма (Box Plot)
Коробчатые диаграммы визуализируют распределение данных и выявляют выбросы:
# Создание коробчатой диаграммы для отображения общего счета по дням
sns.boxplot(x="day", y="total_bill", hue="sex", data=tips)
plt.title("Коробчатая диаграмма общего счета по дням")
plt.show()
sns.boxplot()
— функция для построения коробчатой диаграммы.
Параметры:
- x="day" — ось X будет представлять дни недели.
- y="total_bill" — ось Y будет представлять общий счет.
- data=tips — указываем набор данных.
- hue="sex" — разбиваем данные по дополнительной категории.
7. Тепловая карта (Heatmap)
Тепловые карты помогают визуализировать матричные данные, например, корреляцию между переменными:
# Вычисление корреляционной матрицы
corr = tips.corr()
# Создание тепловой карты для отображения корреляционной матрицы
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt=".2f", square=True)
plt.title("Корреляционная матрица")
plt.show()
Параметры:
- annot=True: Значения корреляции отображаются в ячейках, что облегчает интерпретацию графика.
- cmap='coolwarm': Используется цветовая палитра от холодных (синих) к теплым (красным) цветам, что визуально подчеркивает различия в корреляции.
- fmt=".2f": Форматирует значения до двух знаков после запятой, улучшая читаемость.
- square=True: Обеспечивает квадратную форму ячеек, что делает тепловую карту более симметричной и эстетически приятной.
Тепловая карта позволяет быстро оценить взаимосвязи между переменными, где цвет ячеек указывает на силу и направление корреляции (положительная или отрицательная). Это помогает выявить значимые зависимости, которые могут быть полезны для дальнейшего анализа.
8. Парные графики (Pair Plot)
Парные графики позволяют визуализировать отношения между несколькими переменными одновременно:
# Создание парных графиков для набора данных tips
pair_plot = sns.pairplot(tips)
pair_plot.fig.suptitle("Парные графики для набора данных tips", y=1.02)
plt.show()
Функция sns.pairplot()
генерирует матрицу графиков, где каждый график показывает зависимость между двумя переменными. Это позволяет быстро оценить потенциальные корреляции и паттерны в данных, а также выявить выбросы. Парные графики упрощают анализ многомерных данных, предоставляя возможность одновременно рассмотреть взаимосвязи между всеми числовыми переменными, что особенно полезно на начальных этапах анализа данных.
Заключение
Библиотека Seaborn значительно упрощает процесс визуализации данных и позволяет создавать информативные графики с минимальными усилиями. Используйте приведенные выше примеры как отправную точку для своих собственных анализов и визуализаций!