Seaborn – статистическая визуализация

онлайн тренер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Что такое Seaborn и зачем он нужен

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

Почему стоит использовать Seaborn:

  • Автоматически оформляет графики;

  • Идеально работает с DataFrame;

  • Поддерживает сложные графики с минимальным кодом;

  • Отлично подходит для анализа категориальных и числовых данных.


Установка и импорт библиотеки Seaborn

Установка проста:

bash
pip install seaborn

Импорт в код:

python
import seaborn as sns import matplotlib.pyplot as plt

Отличия Seaborn от Matplotlib

Функция Matplotlib Seaborn
Визуальный стиль по умолчанию Простой, базовый Современный, стилизованный
Работа с DataFrame Ограничена Отличная интеграция
Построение статистических графиков Требует ручной работы Автоматизировано

Seaborn упрощает работу, особенно если вы анализируете данные в формате таблиц (Pandas).


Основы построения графиков с Seaborn

Работа с встроенными наборами данных

Seaborn включает готовые датасеты:

python
df = sns.load_dataset("tips") df.head()

Быстрый пример: линейная диаграмма

python
sns.lineplot(x="total_bill", y="tip", data=df) plt.show()

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


Основные типы графиков в Seaborn

Распределение данных: distplot и histplot

python
sns.histplot(df["total_bill"], bins=20, kde=True)

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

Диаграмма рассеяния: scatterplot

python
sns.scatterplot(x="total_bill", y="tip", hue="sex", data=df)

Цветовая сегментация добавляется по признаку hue.

Парные графики: pairplot

python
sns.pairplot(df, hue="sex")

Выводит матрицу из scatter-графиков по числовым переменным.

Группировка и категории: boxplot, violinplot

python
sns.boxplot(x="day", y="total_bill", data=df) sns.violinplot(x="day", y="tip", data=df)

Идеально для сравнения распределений по категориям.

Тепловые карты: heatmap

python
corr = df.corr() sns.heatmap(corr, annot=True, cmap="coolwarm")

Позволяет визуализировать корреляции между признаками.


Настройка внешнего вида графиков

Цветовые палитры

python
sns.set_palette("pastel")

Популярные палитры: "dark", "muted", "bright", "colorblind".

Темы и стили оформления

python
sns.set_style("whitegrid")

Темы: "white", "darkgrid", "ticks" и другие.


Интеграция с Pandas и Matplotlib

Seaborn отлично работает с DataFrame:

python
sns.barplot(x="day", y="total_bill", data=df)

А Matplotlib позволяет добавлять подписи, сохранять графики:

python
plt.title("График расходов по дням") plt.savefig("seaborn_chart.png")

Часто задаваемые вопросы

❓ Что такое Seaborn?

Это библиотека Python для создания стильных статистических графиков на основе Matplotlib.

❓ В чём отличие от Matplotlib?

Seaborn более автоматизирован и лучше подходит для работы с DataFrame и статистикой.

❓ Какие типы графиков поддерживаются?

Гистограммы, линейные графики, scatter, boxplot, heatmap, violinplot и др.

❓ Можно ли использовать Seaborn с Pandas?

Да, Seaborn идеально интегрируется с pandas.DataFrame.

❓ Как изменить стиль графиков?

python
sns.set_style("whitegrid")

❓ Как сохранить график?

python
plt.savefig("график.png")

Полный справочник по ключевым функциям и модулям библиотеки Seaborn  для Python

Визуализация статистических взаимосвязей

Функция Описание
sns.scatterplot() Строит диаграмму рассеяния с возможностью группировки по цвету, размеру и стилю.
sns.lineplot() Создает линейный график, подходящий для временных рядов и трендов.
sns.relplot() Функция уровня фигуры для построения диаграмм рассеяния или линейных графиков с поддержкой фасетирования.

Визуализация распределений данных

Функция Описание
sns.histplot() Строит гистограмму для отображения распределения данных.
sns.kdeplot() Создает график оценки плотности ядра для непрерывных переменных.
sns.ecdfplot() Строит эмпирическую функцию распределения (ECDF).
sns.rugplot() Отображает отдельные наблюдения вдоль оси в виде коротких линий.
sns.displot() Функция уровня фигуры для построения гистограмм, KDE и ECDF с поддержкой фасетирования.

Визуализация категориальных данных

Функция Описание
sns.stripplot() Строит категориальную диаграмму рассеяния с возможностью джиттера.
sns.swarmplot() Создает диаграмму рассеяния с размещением точек, предотвращающим перекрытие.
sns.boxplot() Строит ящик с усами для отображения распределения и выбросов.
sns.violinplot() Комбинирует KDE и ящик с усами для отображения распределения.
sns.boxenplot() Расширенная версия boxplot для больших наборов данных.
sns.pointplot() Отображает средние значения с доверительными интервалами.
sns.barplot() Строит столбчатую диаграмму с агрегацией и доверительными интервалами.
sns.countplot() Отображает количество наблюдений в каждой категории.
sns.catplot() Функция уровня фигуры для построения различных категориальных графиков с поддержкой фасетирования.

Регрессионный анализ

Функция Описание
sns.regplot() Строит диаграмму рассеяния с линией линейной регрессии.
sns.lmplot() Функция уровня фигуры для построения регрессионных графиков с поддержкой фасетирования.
sns.residplot() Отображает остатки регрессионной модели.

Матрицы и тепловые карты

Функция Описание
sns.heatmap() Строит тепловую карту для матрицы данных.
sns.clustermap() Создает тепловую карту с иерархической кластеризацией строк и столбцов.

Многоуровневые графики

Функция Описание
sns.FacetGrid() Создает сетку подграфиков по значениям одной или нескольких переменных.
sns.PairGrid() Строит сетку парных графиков для всех комбинаций переменных.
sns.pairplot() Быстрый способ построения PairGrid с диаграммами рассеяния и KDE.
sns.JointGrid() Создает график с центральной диаграммой рассеяния и гистограммами по осям.
sns.jointplot() Быстрый способ построения JointGrid с различными типами графиков.

Настройка внешнего вида

Функция Описание
sns.set_theme() Устанавливает тему оформления графиков.
sns.set_style() Определяет стиль графика (например, "whitegrid").
sns.set_context() Настраивает контекст отображения (например, "notebook", "talk").
sns.set_palette() Устанавливает цветовую палитру для графиков.
sns.color_palette() Возвращает список цветов из выбранной палитры.
sns.despine() Удаляет верхнюю и правую границы графика для более чистого вида.

Утилиты и загрузка данных

Функция Описание
sns.load_dataset() Загружает встроенные наборы данных Seaborn.
sns.get_dataset_names() Возвращает список доступных встроенных наборов данных.
sns.get_data_home() Возвращает путь к директории с данными Seaborn.

Новый объектно-ориентированный интерфейс (с версии 0.12)

Класс / Метод Описание
so.Plot() Основной класс для создания графиков с использованием композиции.
.add() Добавляет элементы (например, точки, линии) к графику.
so.Dot(), so.Line(), so.Band() Графические элементы для отображения данных.
so.Agg(), so.Est() Статистические трансформации для агрегации и оценки.
.facet() Создает фасетированные графики по значениям переменных.
.plot() Отображает финальный график.

Заключение: преимущества Seaborn для аналитиков данных

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

Вы узнаете:

  • Как строить разнообразные графики;

  • Как анализировать категории и числовые переменные;

  • Как настраивать стили, палитры и темы;

  • Как визуализировать статистику быстро и красиво.