Seaborn ecdfplot – Эмпирические функции накопленного распределения

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

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

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

  • Как настроить графики Seaborn ECDF с помощью цвета

Оглавление

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

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

# Понимание функции ecdfplot
seaborn.ecdfplot(data=None, *, x=None, y=None, hue=None, weights=None, stat='proportion', complementary=False, palette=None, hue_order=None, hue_norm=None, log_scale=None, legend=True, ax=None, **kwargs)

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

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

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

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

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

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

Для создания простой Эмпирической Кумулятивной Функции Распределения с использованием Seaborn, мы можем передать Pandas DataFrame и метку столбца в функцию sns.ecdfplot(). Для этого мы можем использовать параметр data= для DataFrame и параметр x= для метки столбца.

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

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

sns.ecdfplot(data=df, x='body_mass_g')
plt.show()

В приведенном выше блоке кода мы импортировали набор данных 'penguins' и затем использовали метку колонки 'body_mass_g' в качестве аргумента для оси x. Это привело к появлению изображения ниже:

Creating ECDF Plots with ecdfplot in Seaborn
Создание графиков ECDF с помощью ecdfplot в Seaborn

Мы видим, что это создает ступенчатое накопительное распределение, которое простирается от 0% до 100% точек набора данных. Хотя это похоже на накопительную гистограмму или график KDE, график ECDF не скрывает никаких деталей.

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

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

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

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

sns.ecdfplot(data=df, y='body_mass_g')
plt.show()

В приведенном выше блоке кода мы использовали тот же код, что и в нашем предыдущем примере. Однако мы поменяли параметр x= на параметр y=. В этом случае значения распределения отображаются вдоль оси y, а пропорция отображается вдоль оси x.

Create a Horizontal ECDF Plot in Seaborn
Создайте горизонтальный график ECDF в Seaborn

В следующем разделе вы узнаете, как строить графики ECDF для нескольких групп данных с использованием Seaborn.

Построение нескольких групп на графиках Seaborn ECDF с оттенком

Seaborn позволяет добавлять цветовую семантику к графикам ECDF (эмпирическая кумулятивная функция распределения) с помощью параметра hue=. Это позволяет передать в функцию название столбца, по которому будет выполнено разделение распределения. Для каждого уникального значения в этом столбце будет добавлен свой цвет, что позволяет лучше понять, как распределены данные для каждой категории.

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

sns.ecdfplot(data=df, x='body_mass_g', hue='sex')
plt.show()

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

Adding Multiple Categories in Seaborn ECDF Plots
Добавление нескольких категорий на графики Seaborn ECDF

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

Отображение количества, а не пропорций на графиках Seaborn ECDF

По умолчанию Seaborn будет отображать долю значений, а не их количество. Чтобы показать количество значений, а не долю, используйте аргумент stat='count'. Давайте посмотрим, как это выглядит:

# Отображение количества вместо пропорций
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.ecdfplot(data=df, x='body_mass_g', hue='sex', stat='count')
plt.show()

В приведенном выше примере мы передали значение count в параметр stat=. Это изменяет ось на отображение количества, а не пропорций. Вы также заметите, что разные цвета теперь имеют разные конечные точки.

Showing Counts Rather than Proportions in Seaborn ECDF Plots
Отображение количества, а не пропорций на графиках Seaborn ECDF

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

Заключение

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

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

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

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

Last updated