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 в список
      • Транспонирование Dataframe в Pandas
      • Python: Разделение DataFrame Pandas
      • Как получить имена столбцов в DataFrame Pandas
      • Pandas: Количество строк в DataFrame (6 способов)
      • Создание пустого DataFrame Pandas и добавление данных
      • Как переименовать столбцы в Pandas DataFrame (с примерами)
      • Изменение порядка столбцов в Pandas: использование метода reindex и метода insert
      • Pandas get_dummies (One-Hot кодирование), объяснение
      • Относительные и Абсолютные Частоты в Python и Pandas
      • Финансовый год – Определение финансового года в Pandas
      • Как сортировать данные в DataFrame 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 – Создание точечных и линейных графиков
      • Полное руководство по созданию точечных диаграмм (scatter plots) в Python с использованием Seaborn
    • 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 kdeplot
  • Создание графика Seaborn KDE с помощью kdeplot
  • Создание горизонтального графика KDE в Seaborn
  • Изменение ширины интервала в графиках Seaborn KDE
  • Предотвращение расширения прошлых экстремальных точек на графиках Seaborn KDE
  • Добавление цветов в графики Seaborn KDE
  • Объединение данных с цветом на графиках Seaborn KDE
  • Увеличение цвета до 100% в графиках Seaborn KDE
  • Построение непрерывных переменных в виде графика KDE в Seaborn
  • Расчет совокупных графиков KDE в Seaborn
  • Использование логарифмической шкалы на графике Seaborn KDE
  • Построение двумерных распределений на графиках Seaborn KDE
  • Построение двумерных распределений в графиках Seaborn KDE с цветом
  • Заключение
  • Дополнительные ресурсы
  1. Учебники Matplotlib и Seaborn
  2. Seaborn

Seaborn kdeplot – Создание графиков оценки плотности ядра

PreviousSeaborn rugplot – Визуализация маргинальных распределенийNextSeaborn histplot – Создание Гистограмм в Seaborn

Last updated 1 year ago

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

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

  • Как работает функция Seaborn kdeplot()

  • Как настроить графики Seaborn KDE, используя цвет, сглаживание и различные интервалы

  • Как визуализировать две непрерывные переменные с помощью функции Seaborn kdeplot

Оглавление

Понимание функции Seaborn kdeplot

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

# Понимание функции kdeplot() в Seaborn
seaborn.kdeplot(data=None, *, x=None, y=None, hue=None, weights=None, palette=None, hue_order=None, hue_norm=None, color=None, fill=None, multiple='layer', common_norm=True, common_grid=False, cumulative=False, bw_method='scott', bw_adjust=1, warn_singular=True, log_scale=None, levels=10, thresh=0.05, gridsize=200, cut=3, clip=None, legend=True, cbar=False, cbar_ax=None, cbar_kws=None, ax=None, **kwargs)

Не волнуйтесь - вам не нужно будет знать все эти параметры. Фактически, мы даже не будем рассматривать все эти параметры в рамках этого руководства. Однако мы исследуем самые важные из них, включая следующие ниже:

  • data= предоставляет данные для построения графика через Pandas DataFrame

  • x= и y= предоставляют переменные для отображения на осях x и y соответственно

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

  • multiple= указывает, как обрабатывать сопоставление нескольких переменных, включая суммирование или создание 100%-ных диапазонов.

Теперь, когда у вас есть хорошее понимание некоторых наиболее важных параметров, давайте перейдем к созданию графиков KDE в Seaborn.

Создание графика Seaborn KDE с помощью kdeplot

Для создания оценки плотности распределения (kernel density estimate) с помощью Seaborn, вам нужно лишь предоставить DataFrame через аргумент data= и указать название колонки через аргумент x=. После этого Seaborn автоматически создаст оценку плотности распределения и отобразит её на графике. Давайте посмотрим, как это выглядит:

# Создание графика KDE в Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm')
plt.show()

В кодовом блоке выше мы указали Seaborn построить KDE график для колонки 'bill_depth_mm' нашего DataFrame. Это приводит к изображению ниже, представляющему оценочную функцию:

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

Создание горизонтального графика KDE в Seaborn

В приведенном выше примере наш KDE график был нарисован вертикально. Seaborn также позволяет создать горизонтальный график оценки плотности ядра, просто поместив столбец, который вы хотите построить, в параметр y=, вместо параметра x=

Давайте посмотрим, как можно создать горизонтальный график KDE в Seaborn:

# Создание горизонтального графика KDE в Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, y='bill_depth_mm')
plt.show()

Изменяя параметр на y=, Seaborn создает тот же график, что и в предыдущем разделе, и отображает его горизонтально.

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

Изменение ширины интервала в графиках Seaborn KDE

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

# Использование меньшей степени сглаживания для графиков
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', bw_adjust=0.3)
plt.show()

В приведенном выше блоке кода мы использовали параметр bw_adjust=0.3. Это уменьшает сглаживание и добавляет больше деталей в колебания базовой функции, как показано ниже:

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

Предотвращение расширения прошлых экстремальных точек на графиках Seaborn KDE

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

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

# Предотвращение обрезки крайних точек
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', cut=0, bw_adjust=3)
plt.show()

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

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

Добавление цветов в графики Seaborn KDE

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

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

sns.kdeplot(data=df, x='bill_depth_mm', hue='species')
plt.show()

В указанном выше блоке кода мы добавили колонку 'species' в параметр hue=. Поскольку эта колонка содержит три уникальных значения, Seaborn нарисует три отдельные линии, как показано ниже:

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

Объединение данных с цветом на графиках Seaborn KDE

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

Для этого вы можете передать multiple='stack', что позволит складывать отдельные оценки друг на друга. Давайте посмотрим, как это выглядит:

# Наложение для дополнительных подкатегорий
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', hue='species', multiple='stack')
plt.show()

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

Мы можем пойти еще дальше, наложив цвета друг на друга в диаграмме до 100%, о чем вы узнаете в следующем разделе.

Увеличение цвета до 100% в графиках Seaborn KDE

Seaborn позволяет даже накладывать оценку плотности до 100%. Это дает вам четкое представление о том, как каждая категория представлена в каждой точке распределения. Для этого можно использовать multiple='fill', что заполнит весь график.

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

# Наложение на 100% для дополнительных подкатегорий
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', hue='species', multiple='fill')
plt.show()

При изменении параметра multiple= на 'fill', вся высота графика используется. Это позволяет увидеть, насколько каждый элемент представлен в распределении.

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

Построение непрерывных переменных в виде графика KDE в Seaborn

Seaborn также упрощает добавление непрерывной переменной к семантике hue=, что означает, что каждое значение будет представлено шкалой цветов.

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

# Построение непрерывных KDE-графиков
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('diamonds')
df['x'] = df['x'].astype('int')
sns.kdeplot(data=df, x='price', hue='x', log_scale=True)
plt.show()

В приведенном выше блоке кода мы изменили одну из переменных на целое число, чтобы наша визуализация выглядела чище. Затем мы передали эту переменную в параметр hue=. По мере увеличения значения 'x', цвет становится темнее.

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

Расчет совокупных графиков KDE в Seaborn

Seaborn упрощает построение кумулятивного графика оценки плотности ядра, используя параметр cumulative=. Создание кумулятивного графика позволяет вам увидеть, какие значения представлены в распределении, что означает возможность лучше понять тенденции в данных.

Давайте посмотрим, как мы можем изменить параметр cumulative=, чтобы создать накопительный график KDE:

# Вычисление накопленных KDE-графиков
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', cumulative=True)
plt.show()

При использовании параметра cumulative=True, можно создать накопительный график плотности распределения (KDE), как показано ниже:

Мы можем расширить это еще дальше, используя аргумент hue=. Чтобы значения каждого распределились до 100%, нам также потребуется установить common_norm=False. Без этого значения будут распределяться только до общего их распределения.

# Вычисление накопленных KDE-графиков с несколькими категориями
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', cumulative=True, hue='species', common_norm=False)
plt.show()

В приведенном выше блоке кода мы попросили Seaborn создать кумулятивные графики KDE, разделенные по цветам, что привело к следующей визуализации:

В следующем разделе мы рассмотрим, как использовать логарифмическую шкалу в kdeplot библиотеки Seaborn.

Использование логарифмической шкалы на графике Seaborn KDE

При работе с большими объемами данных может быть полезно отображать данные, используя логарифмическую шкалу. Чтобы создать плотность распределения вероятности в Seaborn с использованием логарифмической шкалы, вы можете указать log_scale=True. По умолчанию этот параметр установлен в значение False, что означает, что данные отображаются без использования логарифмической шкалы.

Давайте посмотрим, как мы можем это сделать, используя набор данных 'diamonds', который включен в Seaborn:

# Использование логарифмической шкалы для значений
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('diamonds')

sns.kdeplot(data=df, x='price', log_scale=True)
plt.show()

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

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

Построение двумерных распределений на графиках Seaborn KDE

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

Давайте посмотрим, как мы можем это сделать на Python, передав две переменные:

# Построить двумерное распределение
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', y='bill_length_mm')
plt.show()

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

Мы можем дополнительно расширить этот график, используя семантику цвета с помощью параметра hue=

Построение двумерных распределений в графиках Seaborn KDE с цветом

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

Давайте посмотрим, как мы можем добавить цвет в наш двумерный график плотности ядра (KDE):

# Построить двумерное распределение с цветом
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', y='bill_length_mm', hue='species')
plt.show()

Взгляните на приведенную ниже диаграмму! Вы можете видеть, что три кластера коррелируют с нашими разными видами в этом распределении.

It can still be difficult to see where data are clustered. Because of this, we can fill our bivariate KDE plot to see where data are clustered by passing in fill=True.

Иногда может быть сложно увидеть, где данные сгруппированы. Поэтому мы можем использовать заливку нашего двухмерного графика плотности распределения, чтобы лучше увидеть группировку данных, используя параметр fill=True.

# Построить двумерное распределение с заполнением цветом
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.kdeplot(data=df, x='bill_depth_mm', y='bill_length_mm', hue='species', fill=True)
plt.show()

Лично я считаю это наиболее интуитивно понятным для понимания бивариатных графиков плотности ядра при добавлении цветовой семантики.

Одна вещь, которую нужно помнить, это то, что некоторые данные теперь скрыты.

Заключение

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

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

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

Чтобы узнать больше о связанных темах, посетите ресурсы ниже:

Построение графика KDE с помощью Seaborn kdeplot
Построение горизонтального графика KDE с помощью Seaborn kdeplot
Уменьшение сглаживания для графиков Seaborn KDE
Предотвращение обрезки экстремальных значений в Seaborn kdeplot
Построение нескольких Seaborn kdeplot с использованием цвета
Объединение нескольких переменных с помощью Seaborn kdeplot
Объединение графиков KDE с несколькими переменными до 100 %
Построение графика kdeplot Seaborn с непрерывной переменной
Создание накопительного kdeplot Seaborn
Создание накопительного kdeplot Seaborn с использованием цвета
Использование логарифмической шкалы для Seaborn kdeplots
Построение двумерного kdeplot в Seaborn
Разделение двумерного kdeplot в Seaborn с помощью цвета
Заполнение двумерного kdeplot Seaborn цветом

Seaborn displot — Графики распределения в Python
Seaborn histplot – Создание гистограмм в Seaborn
Seaborn kdeplot – Создание графиков оценки плотности ядра
Seaborn Rugplot – Построение графика предельных распределений
Seaborn ecdfplot – Эмпирические кумулятивные функции распределения
Seaborn kdeplot() — Официальная документация
Понимание функции Seaborn kdeplot
Создание графика Seaborn KDE с помощью kdeplot
Создание горизонтального графика KDE в Seaborn
Изменение ширины интервала в графиках Seaborn KDE
Предотвращение расширения прошлых экстремальных точек на графиках Seaborn KDE
Добавление цветов в графики Seaborn KDE
Объединение данных с цветом на графиках Seaborn KDE
Увеличение цвета до 100% в графиках Seaborn KDE
Построение непрерывных переменных в виде графика KDE в Seaborn
Расчет совокупных графиков KDE в Seaborn
Использование логарифмической шкалы на графике Seaborn KDE
Построение двумерных распределений на графиках Seaborn KDE
Построение двумерных распределений в графиках Seaborn KDE с цветом
Заключение
Дополнительные ресурсы
Prevent Cutting Extreme Values in Seaborn kdeplot
Plotting Multiple Seaborn kdeplot with Color
Reducing Smoothing for Seaborn KDE Plots
Plotting a KDE Plot with Seaborn kdeplot
Stacking Multiple Variables with Seaborn kdeplot
Plotting a Horizontal KDE Plot with Seaborn kdeplot
Creating a Cumulative Seaborn kdeplot
Plotting a Seaborn kdeplot with a Continuous Variable
Creating a Cumulative Seaborn kdeplot with Color
Stacking KDE Plots with Multiple Variables to 100%
Filling a Bivariate Seaborn kdeplot with Color
Splitting a Bivariate kdeplot in Seaborn with Color
Using a Log Scale for Seaborn kdeplots
Plotting a Bivariate kdeplot in Seaborn