Bemind
Учебник Python
Учебник Python
  • Python
    • Python Lists
      • Списковые включения в Python (Полное руководство с примерами)
      • Исправление ValueError: Слишком Много Значений Для Распаковки в Python
      • Как добавить словарь в список в Python
      • Как добавить строку в список в Python
      • Разница между массивами и списками в Python
      • Python: Различия между списками и кортежами
      • Как проверить, пуст ли список в Python
      • Как Итерировать (Циклически Проходить) По Списку в Python
      • Python List sort(): Подробное руководство по сортировке списков
      • Python List Extend: Как добавить несколько элементов в список
      • Python: Найти Индекс Всех Вхождений Элемента в Списке
      • Конвертация списка словарей в Pandas DataFrame
      • Генерация случайных чисел в Python
      • Поиск Индекса в Списке Python: Найти Первое, Последнее или Все Вхождения
      • Добавить в начало списка в Python (Вставить в начало)
      • Найти дубликаты в списке Python
      • Python: Умножение Списков (6 Различных Способов)
      • Python списки: Полный обзор
      • Python: Выбор случайного элемента из списка
      • 4 Способа Очистить Список в Python
      • Объяснение ошибки IndexError в Python: индекс списка выходит за пределы допустимого диапазона
      • Python: Получение индекса максимального элемента в списке
      • Python: Объединение списков – Слияние списков (8 способов)
      • Python: Проверка наличия элемента в списке
      • Python: Проверка наличия элемента в списке
      • Удаление элемента из списка в Python (pop, remove, del, clear)
      • Как перевернуть список в Python (6 способов)
      • Python: Замена элемента в списке (6 различных способов)
      • Python: Удаление дубликатов из списка (7 способов)
      • Python: Преобразование словаря в список кортежей (4 простых способа)
      • Python: Перемешать Список (Случайное Распределение Элементов Списка в Python)
      • Python: Пересечение двух списков
      • Python: Вычитание двух списков (4 простых способа!)
      • Длина или Размер Списка в Python: 5 Способов Узнать Длину Списка
      • Python: Транспонирование списка списков (5 простых способов!)
      • Python: Разделение списка (Пополам, на части)
      • Python: Комбинации списка (Получить все комбинации списка)
      • Python: Выравнивание списка списков (4 способа)
      • Разница между списками в Python: Нахождение разницы между двумя списками Python
      • Python: Найти среднее значение списка или списка списков
      • Как добавлять элементы в списки в Python – 4 простых способа!
      • Списковые включения в Python (Полное руководство с примерами)
      • 6 способов преобразовать список Python в строку
    • Python Dictionaries
      • Понимание словаря Python (с примерами)
      • Исправляем ValueError: Слишком Много Значений Для Распаковки в Python
      • Как добавить словарь в список в Python
      • Преобразование JSON в словарь Python
      • Полное руководство по вложенным словарям в Python
      • Копирование словаря в Python: Полное руководство
      • Конвертация списка словарей в Pandas DataFrame
      • Поиск дубликатов в списке Python
      • Полный обзор словарей в Python
      • Python: Добавление пары Ключ:Значение в Словарь
      • Python: Сортировка словаря по значениям
      • Слияние Словарей в Python – Комбинирование Словарей (7 Способов)
      • Python: Удаление Дубликатов из Списка (7 Способов)
      • Python: Преобразование словаря в список кортежей (4 простых способа)
      • Python: Красивая Печать Словаря (Dictionary) – 4 Способа
      • Python: Проверка пуст ли словарь (5 способов!)
      • Copy of Python: Проверка пуст ли словарь (5 способов!)
      • Python: Проверьте, существует ли ключ (или значение) в словаре (5 простых способов)
      • Python: Проверьте, существует ли ключ (или значение) в словаре (5 простых способов)
      • Python: Получение Ключа Словаря с Максимальным Значением (4 Способа)
      • Python: Удаление ключа из словаря (4 разных способа)
      • Как красиво вывести JSON-файл в Python (6 методов)
    • Python Strings
      • Python Капитализация Строк: Руководство по Преобразованию слов в Заглавные
      • Python strip: Как обрезать строку в Python
      • Python Обратная Строка: Руководство по Реверсированию Строк
      • Как Удалить Префикс или Суффикс из Строки в Python
      • Преобразование строки в формат заголовка в Python с помощью str.title()
      • Как добавить строку в список в Python
      • Python String startswith: Проверка, начинается ли строка с подстроки
      • Python String endswith: Проверка того, заканчивается ли строка подстрокой
      • Как удалить первый или последний символ из строки в Python
      • Как исправить: SyntaxError в Python - EOL при сканировании строкового литерала
      • Python String Contains: Проверка Наличия Подстроки в Строке
      • Как проверить, пустая ли строка в Python
      • Python Новая Строка и Как Печатать Без Переноса Строки
      • Как Конкатенировать Строки в Python: Полное Руководство
      • Python: Подсчет слов в строке или файле
      • Как создать список алфавита в Python
      • Python: Конкатенация строки и целого числа (Int)
      • Python: Сортировка строки (4 различных способа)
      • Python zfill и rjust: Добавление нулей в строку в Python
      • Python: Целое в Двоичное (Преобразование целого числа в двоичную строку)
      • Python rfind: Нахождение индекса последней подстроки в строке
      • Python SHA256 хеширование алгоритм: объяснение
      • Python: Усечение числа с плавающей точкой (6 различных способов)
      • Выбор между методами Python isdigit(), isnumeric() и isdecimal()
      • Python: Удаление специальных символов из строки
      • Python Приведение Строки к Нижнему Регистру с помощью .lower(), .casefold(), и .islower()
      • Python программа для проверки, является ли строка палиндромом (6 методов)
      • Python: Найдите все перестановки строки (3 легких способа!)
      • Python: Удаление пунктуации из строки (3 разных способа!)
      • Python: Найти индекс (или все индексы) подстроки в строке
      • Python: Удаление символов новой строки из строки
      • Python: Удаление символа из строки (4 способа)
      • Python: Количество вхождений в строке (4 способа!)
    • Встроенные функции Python
      • abs()
      • ascii()
      • aiter()
      • all()
      • any()
      • anext()
      • bin()
      • bool()
      • breakpoint()
      • bytearray()
      • bytes()
      • callable()
      • chr()
      • classmethod()
      • compile()
      • complex()
      • delattr()
      • dict()
      • dir()
      • divmod()
      • enumerate()
      • eval()
      • exec()
      • filter()
      • float()
      • format()
      • frozenset()
      • getattr()
      • globals()
      • hasattr()
      • hash()
      • help()
      • hex()
      • id()
      • input()
      • int()
      • issubclass()
      • iter()
      • len()
      • list()
      • locals()
      • map()
      • max()
      • memoryview()
      • min()
      • next()
      • object()
      • oct()
      • open()
      • ord()
      • pow()
      • print()
      • property()
      • range()
      • repr()
      • reversed()
      • round()
      • set()
      • setattr()
      • isinstance()
      • slice()
      • zip()
      • type()
      • sorted()
      • staticmethod()
      • str()
      • sum()
      • super()
      • tuple()
      • vars()
      • import()
    • Cобеседования Python. Разбор реальных вопросов.
    • Встроенные методы в Python
  • Учебники по Pandas и Numpy
    • Numpy
      • Функция активации ReLU для глубокого обучения: полное руководство по выпрямленному линейному блоку
      • Как нормализовать массивы NumPy (минимальное-максимальное масштабирование, Z-оценка, L2)
      • NumPy where: Условная обработка элементов массива
      • NumPy linspace: создание равномерно расположенных массивов с помощью np.linspace
      • Как рассчитать векторное произведение в Python
      • Разделение NumPy: Разделение массива NumPy на части
      • NumPy: Лучшие способы применения функции к массиву
      • NumPy full: Создание массивов с заданным значением
      • NumPy clip(): Ограничьте значения массива минимальным и максимальным значениями
      • NumPy cumsum: Расчет кумулятивных сумм массивов NumPy
      • Изучаем функцию np.histogram в NumPy: создаем гистограмму
      • NumPy arange(): Полное руководство (с примерами)
      • Руководство по индексации и срезам массивов NumPy: Полное руководство
      • NumPy argmin(): Получение индекса минимального значения в массивах
      • Выравнивание массива с помощью NumPy flatten
      • Объединение массивов NumPy по различным осям с использованием функции stack
      • Удаление размерности из массивов NumPy с помощью NumPy Squeeze
      • Функция np.repeat() NumPy: Повторение массивов NumPy
      • Использование функции NumPy.exp() для вычисления экспоненты
      • Реализация функции сигмоида на Python
      • NumPy Pad: Использование np.pad() для дополнения массивов и матриц
      • np.argmax(): Как использовать NumPy Argmax
      • NumPy logspace: Понимание функции np.logspace()
      • Использование NumPy Tile для Расположения Массивов
      • NumPy Zeros: Создание массивов и матриц с нулями в NumPy
      • Использование числа Пи в Python (NumPy и Math)
      • Распределение Нормального (Гауссова) Распределения в Numpy (Случайное Нормальное в Numpy)
      • NumPy для Data Science на Python
      • Расчет скалярного произведения с использованием Numpy в Python
      • Расчет натурального логарифма на Python
    • Pandas
      • Python сводные таблицы – Полное руководство
      • Изучение API стиля Pandas
      • Объяснение группировки по нескольким столбцам в Pandas с примерами
      • Удаление индексной колонки DataFrame в Pandas: Руководство с примерами
      • Pandas Quantile: Расчет процентилей в DataFrame
      • Как рассчитать скользящее среднее (среднее арифметическое) в Pandas
      • Руководство по использованию метода fillna в Pandas для работы с отсутствующими данными в DataFrame
      • Pandas unique(): Получение уникальных значений в DataFrame
      • Распакуйте Ваши Данные с Помощью Функции Melt в Pandas
      • Pandas date_range: Как Создать Диапазон Дат в Pandas
      • Сброс индекса в Pandas: как сбросить индекс в Pandas
      • Pandas replace() – Замена значений в DataFrame Pandas
      • Перемещение столбца DataFrame Pandas на позицию (В начало и в конец)
      • Учебное пособие по Python Pandas: полное руководство
      • Pandas: Замена NaN на нули
      • Преобразование DataFrame Pandas в файл Pickle
      • Конвертация Pandas DataFrame в JSON
      • Преобразование DataFrame Pandas в Словарь
      • Преобразование Pandas DataFrame в Список
      • Чтение файлов Parquet в Pandas с помощью pd.read_parquet
      • Pandas dropna(): Удаление отсутствующих записей и столбцов в DataFrame
      • Как Добавить Новый Столбец в DataFrame Pandas
      • Подсчёт уникальных значений в Pandas
      • Отображение всех столбцов и строк в DataFrame Pandas
      • Pandas to_excel: Запись DataFrames в файлы Excel
      • Как использовать Pandas для чтения файлов Excel в Python
      • Преобразование списка словарей в Pandas DataFrame
      • Как добавить/вставить строку в DataFrame Pandas
      • Диаграмма рассеяния в Pandas: Как создать диаграмму рассеяния в Pandas
      • Pandas to_datetime: Преобразование строки Pandas в дату и время
      • Введение в Pandas для Data Science
      • Индексация, Выборка и Присваивание Данных в Pandas
      • Суммирование и Анализ Pandas DataFrame
      • Преобразование столбцов Pandas с помощью map и apply
      • Группировка данных в Pandas с использованием cut и qcut
      • Дата и время в Pandas и Python
      • Очистка и подготовка данных в Pandas и Python
      • Pandas GroupBy: группировка, суммирование и агрегация данных в Python
      • Pandas Дата и Время в Части Даты (месяц, год и т.д.)
      • Pandas: Получение номера строки из DataFrame
      • Вычисление Взвешенного Среднего в Pandas и Python
      • Как перемешать строки Pandas Dataframe в Python
      • Pandas: количество столбцов (подсчет столбцов в DataFrame)
      • Pandas Sum: сложение столбцов и строк DataFrame
      • Pandas Diff: Вычисление Разницы Между Строками Pandas
      • Нормализация столбца или датафрейма Pandas (с использованием Pandas или sklearn)
      • Функция Rank в Pandas: Ранжирование данных в Dataframe (Эквивалент SQL row_number)
      • Pandas Describe: Описательная статистика вашего Dataframe
      • Pandas Shift: Перемещение столбца DataFrame вверх или вниз
      • 7 Способов Выполнения Выборки Данных в Pandas
      • Экспорт DataFrame Pandas в CSV файл – Использование .to_csv()
      • Pandas: Итерация по строкам DataFrame в Pandas
      • Pandas: Преобразование значений столбца в строки
      • Дисперсия в Pandas: Вычисление дисперсии столбца в Pandas Dataframe
      • Pandas: Создание DataFrame из списков (5 способов!)
      • Pandas Rename Index: Как переименовать индекс DataFrame в Pandas
      • Pandas: Подсчёт уникальных значений в объекте GroupBy
      • Pandas: Добавить дни к колонке с датами
      • Среднее в Pandas: Как рассчитать среднее для одной или нескольких колонок
      • Pandas Column to List – Конвертируйте колонку Pandas в список
  • Учебники Matplotlib и Seaborn
    • Seaborn
      • Регрессионные графики в Seaborn с использованием regplot и lmplot
      • Seaborn residplot – Построение остатков линейной регрессии
      • Seaborn jointplot() – Создание совместных графиков в Seaborn
      • Seaborn displot – Распределенческие графики в Python
      • Seaborn ecdfplot – Эмпирические функции накопленного распределения
      • Seaborn rugplot – Визуализация маргинальных распределений
      • Seaborn kdeplot – Создание графиков оценки плотности ядра
      • Seaborn histplot – Создание Гистограмм в Seaborn
      • Seaborn catplot – Визуализация категориальных данных в Python
      • Средняя тенденция для категориальных данных в Seaborn Pointplot
      • Seaborn stripplot: Jitter Plots для распределений категориальных данных
      • Seaborn Countplot – Подсчет категориальных данных в Python
      • Seaborn swarmplot: Bee Swarm Plots для распределения категориальных данных
      • Скрипичные графики Seaborn в Python: Полное руководство
      • Настройка расположения легенд Seaborn, меток, текста и т.д.
      • Тепловая карта Seaborn: Полное руководство
      • Создание многосекционных сеток в Seaborn с помощью FacetGrid
      • Удаление рамки в Seaborn: Как работать с рамкой
      • Заголовки и метки осей в Seaborn: добавление и настройка
      • Как установить Seaborn в Python (Исправление: no module named seaborn)
      • Seaborn relplot – Создание точечных и линейных графиков
    • Matplotlib
      • Режим Retina в Matplotlib: Улучшение Качества Графиков
      • Как построить функцию в Python с использованием Matplotlib
      • Как создать 3D-диаграммы рассеяния в Matplotlib
      • Как изменить размер шрифта в графике Matplotlib
      • Установка размера маркера в точечных диаграммах Matplotlib
      • Как изменить размер графика и фигуры в Matplotlib
      • Как добавить названия в Matplotlib: Заголовок, Подзаголовок, Названия Осей
      • Pandas Scatter Plot: Как создать диаграмму рассеяния в Pandas
      • Построение графиков в Python с помощью Matplotlib
      • Диаграммы рассеяния Matplotlib – Все, что вам нужно знать
      • Диаграммы с столбцами в Matplotlib – Узнайте все, что вам нужно знать
      • Линейные диаграммы Matplotlib – Всё, что вам нужно знать
      • Построение гистограммы в Python с Matplotlib и Pandas
  • Алгоритмы
    • Алгоритм поиска в ширину (BFS) в Python
    • Алгоритм поиска в глубину (DFS) на Python
  • AI создает хедж-фонд для анализа акций на Python
Powered by GitBook
On this page
  • Понимание функции Seaborn catplot()
  • Загрузка образца набора данных
  • Создание базового сюжета с помощью Seaborn
  • Создание гистограммы с помощью Seaborn Catplot
  • Изменение сюжета Seaborn с помощью цвета
  • Создание подмножеств графиков со строками и столбцами
  • Изменение названий и меток осей в Seaborn Catplot
  • Изменение размера кошачьего сюжета Seaborn
  • Заключение
  • Дополнительные ресурсы
  1. Учебники Matplotlib и Seaborn
  2. Seaborn

Seaborn catplot – Визуализация категориальных данных в Python

PreviousSeaborn histplot – Создание Гистограмм в SeabornNextСредняя тенденция для категориальных данных в Seaborn Pointplot

Last updated 11 months ago

В этом руководстве вы научитесь создавать реляционные графики Seaborn с использованием функции sns.catplot(). Категориальные графики показывают отношения между числовыми и одной или несколькими категориальными переменными. Seaborn предоставляет множество различных функций визуализации категориальных данных, которые охватывают всё разнообразие категориальных точечных диаграмм, распределения категориальных данных и оценочных категориальных графиков.

Seaborn предлагает специализированные функции для обеих этих визуализаций. Так зачем использовать функцию catplot()? Функция catplot() в Seaborn является функцией на уровне фигур, а не на уровне осей. Это открывает разные возможности в плане того, как вы строите свои визуализации.

К концу этого урока вы научитесь следующему:

  • Что такое функция Seaborn catplot()

  • Когда использовать функцию Seaborn catplot() вместо специальных функций

  • Как построить несколько графиков с помощью функции уровня фигуры sns.catplot()

  • Как настроить заголовки, цвета и многое другое

Оглавление

Понимание функции Seaborn catplot()

Функция catplot() в Seaborn используется для создания графиков на уровне фигур на основе Seaborn FacetGrid. Вы можете настроить тип визуализации, используя параметр kind=

Функция catplot() в Seaborn предоставляет интерфейс уровня фигуры для создания категориальных графиков. Это означает, что функция позволяет создавать графики на уровне фигуры, а не объекта осей. Это открывает гораздо больше возможностей.

Давайте посмотрим, как написана функция:

# Понимание функции catplot() в Seaborn
import seaborn as sns
sns.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, col_wrap=None, estimator='mean', errorbar=('ci', 95), n_boot=1000, units=None, seed=None, order=None, hue_order=None, row_order=None, col_order=None, height=5, aspect=1, kind='strip', native_scale=False, formatter=None, orient=None, color=None, palette=None, hue_norm=None, legend='auto', legend_out=True, sharex=True, sharey=True, margin_titles=False, facet_kws=None, ci='deprecated', **kwargs)

Функция позволяет вам создавать следующие типы визуализации, модифицируемые с использованием параметра kind=

Категориальный тип диаграммы
Тип графика
Функция Аргумент
Учебное пособие по специальным функциям

Categorical Scatter Plot

Strip Plot

kind='strip'

Categorical Scatter Plot

Swarm Plot

kind='swarm'

Categorical Distribution Plot

Box Plot

kind='box'

Categorical Distribution Plot

Violin Plot

kind='violin'

Categorical Distribution Plot

Boxen Plot

kind='boxen'

sns.boxenplot()

Categorical Estimate Plot

Point Plot

kind='point'

Categorical Estimate Plot

Bar Plot

kind='bar'

Categorical Estimate Plot

Count Plot

kind='count'

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

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

  • data= предоставляет данные для построения графика с помощью Pandas DataFrame

  • x= и y= указывают переменные координат для осей X и Y соответственно

  • hue= добавляет дополнительную переменную в график через цветовое кодирование

Дополнительно, функция предлагает некоторые дополнительные параметры, доступные только в функции catplot(). Давайте исследуем их:

  • kind= определяет тип создаваемой диаграммы. По умолчанию будет создана диаграмма типа "полосы", с использованием ключевого аргумента 'strip'

  • row= позволяет вам разделить ваш набор данных на дополнительные строки визуализаций

  • Опция col= позволяет разделить ваш набор данных на дополнительные колонки визуализаций.

  • height= и aspect= контролируют размер вашей визуализации данных

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

Загрузка образца набора данных

Давайте посмотрим, как мы можем прочитать набор данных и изучить его первые пять строк:

# Исследование образца данных
import seaborn as sns
df = sns.load_dataset('penguins')

print(df.head())

# Возвращает:
#       species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  body_mass_g     sex
# 0     Adelie  Torgersen            39.1           18.7              181.0       3750.0    Male
# 1     Adelie  Torgersen            39.5           17.4              186.0       3800.0  Female
# 2     Adelie  Torgersen            40.3           18.0              195.0       3250.0  Female
# 3     Adelie  Torgersen            36.7           19.3              193.0       3450.0  Female
# 4     Adelie  Torgersen            39.3           20.6              190.0       3650.0    Male

Создание базового сюжета с помощью Seaborn

По умолчанию функция catplot() в Seaborn создаст точечную диаграмму. Для создания самой базовой визуализации мы можем просто передать следующие параметры:

  • data= передать в наш DataFrame

  • x= и y= для передачи меток столбцов, которые мы хотим исследовать на диаграмме рассеяния

Давайте посмотрим, как выглядит этот код:

# Исследование образца данных
import seaborn as sns
df = sns.load_dataset('penguins')

print(df.head())

# Возвращает:
#       вид       остров  длина_клюва_mm  глубина_клюва_mm  длина_ласт_mm  масса_тела_g     пол
# 0  Adelie  Torgersen             39.1              18.7           181.0         3750.0    Мужской
# 1  Adelie  Torgersen             39.5              17.4           186.0         3800.0  Женский
# 2  Adelie  Torgersen             40.3              18.0           195.0         3250.0  Женский
# 3  Adelie  Torgersen             36.7              19.3           193.0         3450.0  Женский
# 4  Adelie  Torgersen             39.3              20.6           190.0         3650.0    Мужской

В приведенном выше блоке кода мы передали наш DataFrame df, а также метки столбцов 'island' и 'bill_length_mm'. Это привело к следующей визуализации:

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

Создание гистограммы с помощью Seaborn Catplot

В функции catplot() библиотеки Seaborn по умолчанию создаются точечные диаграммы, но мы также можем создавать столбчатые диаграммы, используя параметр kind='bar'. Это особенно полезно, когда вы хотите агрегировать данные до одной меры, например, до среднего значения набора данных.

# Создание столбчатой диаграммы с помощью функции catplot() из библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='bar')
plt.show()

В приведенном выше блоке кода мы добавили один дополнительный ключевой аргумент: kind=. Это позволило нам создать совершенно другую визуализацию данных, как показано ниже:

Поскольку функция catplot() на самом деле использует функцию barplot() «под капотом», их поведение одинаково. По умолчанию функция будет агрегировать данные в одно значение. Так как у нас есть три разных значения данных для каждой даты, Seaborn вернет среднее значение каждого значения данных.

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

Понимание диапазонов ошибок в кошачьем графике Seaborn

При агрегации данных в catplot'ах Seaborn, Seaborn добавляет к визуализации планку ошибки. В приведенном выше примере мы создали столбчатую диаграмму, которая возвращала среднее значение для каждой категории.

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

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

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

Мы также можем изменить процент, используемый в нашем доверительном интервале, передав кортеж, содержащий ('ci', n), где n представляет собой процент, который мы хотим использовать. Давайте изменим наш интервал так, чтобы он отображал 99% доверительный интервал:

# Изменение планок ошибок в функции catplot() библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='bar', errorbar=('ci', 99))
plt.show()

Это дает следующую визуализацию. Обратите внимание, что теперь полоса уже, поскольку полоса ошибки теперь намного менее определена.

Вы также можете заметить, что параметр errorbar= не является частью определения функции catplot(). Тем не менее, он является частью функции barplot(). Seaborn позволяет использовать любые ключевые аргументы из этой функции при построении линейного графика.

Если вам нужно изменить тип расчета ошибки, Seaborn тоже облегчает эту задачу!

Seaborn поддерживает следующие расчеты погрешностей: 'ci', 'pi', 'se', или 'sd', которые представляют следующие расчеты:

  • 'ci': интервал уверенности, который вычисляет непараметрическую неопределенность

  • 'pi': интервал процентилей, который рассчитывает непараметрическое распределение

  • 'se': стандартная ошибка, которая рассчитывает параметрическую неопределенность

  • 'sd': стандартное отклонение, которое рассчитывает параметрическое распределение

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

Изменение сюжета Seaborn с помощью цвета

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

Мы можем использовать параметр hue= для добавления дополнительных параметров цвета. Давайте исследуем, как мы можем добавлять дополнительные детали, используя цвет.

Добавление цвета в сюжет Seaborn Catplot

Чтобы добавить дополнительную переменную в вашу диаграмму Seaborn catplot(), вы можете использовать параметр hue=, чтобы передать столбец DataFrame, который разделит данные на несколько цветов.

Когда вы работаете с категориальными данными в Seaborn, он создаст цвет для каждого уникального значения в этой колонке. Таким образом, за каждое уникальное значение будет добавлен отдельный цвет.

Добавление цветовых стилей вместо добавления цветовых измерений

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

Давайте посмотрим, как мы можем использовать Seaborn, чтобы добавить больше деталей в наш график, используя параметр hue=

# Добавление цвета с помощью параметра hue
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', hue='пол')
plt.show()

В указанном выше блоке кода мы передали hue='Name'. Это означает, что мы хотим окрасить точки на нашем диаграмме рассеяния в разные цвета в зависимости от пола пингвина. (Примечание: мы также применили палитру, хотя это сделано исключительно для стилизации диаграммы). В результате получается следующее изображение:

Теперь мы видим, что визуализация данных стала намного четче. Мы можем гораздо лучше видеть различия в данных.

Создание подмножеств графиков со строками и столбцами

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

В отличие от разделения визуализации с помощью цвета или стиля (хотя это также возможно), Seaborn разделит визуализацию на несколько подграфиков. Однако вам не потребуется явно определять подграфики, так как Seaborn автоматически разместит их на сетке фигур FacetGrid.

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

Добавление столбцов в Seaborn Catplot

Для создания колонок с подграфиками мы можем использовать параметр col=. Этот параметр принимает либо метку колонки DataFrame Pandas, либо массив данных. Давайте разделим нашу визуализацию данных на колонки, основываясь на принадлежности к определенной акции:

# Добавление столбцов данных
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', col='пол')
plt.show()

В указанном выше кодовом блоке мы настроили Seaborn на создание колонок малых множителей с колонкой 'sex'. Это означает, что Seaborn создаст отдельный субплот в более широком FacetGrid для каждого уникального значения в колонке

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

Из-за этого мы можем использовать параметр col_wrap=, чтобы организовывать графики в столбцы. Этот параметр принимает целое число, указывающее, сколько столбцов должно быть перед тем, как графики будут перенесены на следующую строку.

# Добавление обёртки для столбцов в графиках
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='пол', y='длина_клюва_mm', kind='violin', col='остров', col_wrap=2)
plt.show()

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

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

Добавление строк в отчет Seaborn

Seaborn также позволяет передавать строки малых множеств. Это работает так же, как и добавление столбцов. Однако, **вы также можете сочетать параметр rows= с параметром col=, чтобы создавать строки и столбцы малых множеств

Давайте посмотрим, как это выглядит:

# Добавление столбцов и строк данных
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', row='пол', col='вид')
plt.show()

В приведённом выше блоке кода мы использовали row='sex' и col='species', чтобы разделить множественные графики на основе обеих этих колонок. Это приводит к следующей визуализации данных:

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

Изменение названий и меток осей в Seaborn Catplot

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

Добавление названия к сюжету Seaborn Catplot

Чтобы добавить заголовок к catplot() в Seaborn, можно воспользоваться методом fig.suptitle(), доступным в Matplotlib. Для этого сначала потребуется настроить отступы нашего объекта фигуры. Этот процесс может быть немного эвристическим и требовать метода проб и ошибок.

Взгляните на блок кода ниже:

# Добавление заголовков к графикам с помощью функции catplot() из библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

cat = sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', row='пол', col='вид')
cat.fig.subplots_adjust(top=0.92)
cat.fig.suptitle('Сравнение пингвинов')

plt.show()

В приведенном выше блоке кода мы внесли ряд важных изменений:

  1. Мы отфильтровали DataFrame, чтобы упростить визуализацию

  2. Мы присвоили переменной cat значение catplot

  3. Затем мы отрегулировали верхнее поле, используя fig.subplots_adjust()

  4. Затем мы применили к объекту фигуры метод suptitle()

Это вернуло следующую визуализацию данных:

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

Добавление заголовков к строкам и столбцам в Seaborn Catplot

Seaborn предлагает невероятно гибкие варианты форматирования для стилизации малых множеств, созданных с использованием параметров col= и row=

# Добавление заголовков строк и столбцов к графикам с помощью функции catplot() из библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

cat = sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', row='пол', col='вид')
cat.fig.subplots_adjust(top=0.92)
cat.fig.suptitle('Сравнение пингвинов')
cat.set_titles(row_template='Пол пингвина: {row_name}', col_template='Вид пингвина: {col_name}')

plt.show()

Это возвращает визуализацию данных ниже:

В следующем разделе вы узнаете, как настроить подписи осей в catplot библиотеки Seaborn.

Изменение меток осей в Seaborn Catplot

По умолчанию Seaborn использует метки столбцов в качестве меток осей в визуализации. Однако во многих случаях это не самое описательное название для использования. Поскольку функция catplot() возвращает объект FacetGrid, мы можем использовать вспомогательные методы для решения этой проблемы, включая:

  • .set_xlabel()который устанавливает метку оси X

  • .set_ylabel() который устанавливает метку оси Y

  • .set_axis_labels() который одновременно устанавливает метки осей X и Y

Давайте посмотрим, как это выглядит в Seaborn:

# Изменение подписей осей в графиках с помощью функции catplot() из библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

cat = sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', row='пол', col='вид')
cat.fig.subplots_adjust(top=0.92)
cat.fig.suptitle('Сравнение пингвинов')
cat.set_titles(row_template='Пол пингвина: {row_name}', col_template='Вид пингвина: {col_name}')

cat.set_xlabels('Длина клюва (мм)')
cat.set_ylabels('Название острова')

plt.show()

В указанном выше блоке кода мы добавили две дополнительные строки кода ближе к концу, чтобы настроить подписи осей нашей визуализации данных. Это приводит к следующей визуализации данных:

В следующем разделе вы узнаете, как изменить размер категориального графика (catplot) в Seaborn.

Изменение размера кошачьего сюжета Seaborn

Поскольку функция catplot() в Seaborn возвращает объект FacetGrid, мы можем легко изменить размер возвращаемого объекта фигуры. Чтобы сделать это, мы можем использовать следующие два параметра:

  1. height= который определяет высоту каждой грани в дюймах

  2. aspect= который определяет соотношение сторон, так что ширина равна height * aspect

Давайте посмотрим, как мы можем изменить размер более простой визуализации данных в Seaborn:

# Изменение размера графика с помощью функции catplot() из библиотеки Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

cat = sns.catplot(data=df, x='остров', y='длина_клюва_mm', kind='violin', height=5, aspect=1.6)

plt.show()

В указанном выше блоке кода мы использовали параметры height=5, aspect=1.6. Это значит, что высота фасета составит 5 дюймов, а ширина — 8 дюймов (5 * 1.6). В результате получается следующая визуализация данных:

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

Заключение

В этом уроке вы научились использовать функцию catplot() библиотеки Seaborn для создания визуализаций отношений на уровне фигур. Функция позволяет легко создавать категориальные графики, включая столбчатые диаграммы и ящичковые диаграммы, обеспечивая при этом знакомый и последовательный интерфейс.

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

Дополнительные ресурсы

Чтобы узнать больше об этой и смежных темах, ознакомьтесь с ресурсами ниже:

  • Seaborn Boxplot – Как создать прямоугольные и усовые диаграммы

  • Сюжеты Seaborn Violin на Python: полное руководство

  • Seaborn Countplot — подсчет категориальных данных в Python

  • Swarmplot Seaborn: графики пчелиного роя для распределения категориальных данных

  • График Seaborn Pointplot: центральная тенденция для категориальных данных

  • График Сиборна: графики джиттера для распределения категориальных данных

Различные категориальные графики, созданные с помощью кошачьих графиков Seaborn

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

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

Создание простого кошачьего сюжета Seaborn
Создание гистограммы с помощью Seaborn Catplot
Изменение полос ошибок в сюжете Seaborn
Добавление цвета с помощью оттенка в кошачьем сюжете Seaborn
Добавление столбцов данных с помощью Seaborn Catplot
Обертывание столбцов с небольшими кратными числами в сюжете Seaborn
Добавление строк и столбцов с небольшими кратными числами в Seaborn Catplot
Добавление названия к сюжету Seaborn Catplot

В приведенном выше блоке кода мы использовали метод .set_titles(), который доступен для объектов FacetGrid. Этот метод позволяет использовать параметры row_template= и col_template=, которые позволяют доступ к переменным col_name и row_name с использованием форматирования похожего на

Добавление заголовков к строкам и столбцам с небольшими кратными числами в кошачьих графиках Seaborn
Добавление меток осей в сюжет Seaborn
Изменение размера фигуры в кошачьем сюжете Seaborn

K-Nearest Neighbor
аксессор iloc
f-strings
Seaborn Catplot() – Официальная документация
Понимание функции Seaborn catplot()
Загрузка образца набора данных
Создание базового сюжета с помощью Seaborn
Создание гистограммы с помощью Seaborn Catplot
Изменение сюжета Seaborn с помощью цвета
Создание подмножеств графиков со строками и столбцами
Изменение названий и меток осей в Seaborn Catplot
Изменение размера кошачьего сюжета Seaborn
Заключение
Дополнительные ресурсы
sns.stripplot()
sns.swarmplot()
sns.boxplot()
sns.violinplot()
sns.pointplot()
sns.barplot()
sns.countplot()
Modifying Error Bars in Seaborn catplot
Creating a Simple Seaborn catplot
Adding Color with hue in a Seaborn catplot
Creating a Bar Chart with Seaborn Catplot
Different Categorical Plots Made with Seaborn catplots
Adding Columns of Data with Seaborn catplot
Adding Rows and Columns of Small Multiples in Seaborn Catplot
Adding Titles to Rows and Columns of Small Multiples in Seaborn catplots
Wrapping Columns of Small Multiples in Seaborn catplot
Adding Axis Labels in Seaborn catplot
Changing a Figure Size in a Seaborn catplot
Adding a Title to a Seaborn Catplot