Seaborn rugplot – Визуализация маргинальных распределений

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

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

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

  • Как настроить коврики Seaborn, используя ширину линий и прозрачность

  • Как добавить коврики Seaborn к другим участкам

Оглавление

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

Перед тем как приступить к созданию rugplot в Seaborn, давайте рассмотрим параметры и аргументы по умолчанию функции rugplot в Seaborn:

# Понимание функции rugplot()
seaborn.rugplot(data=None, *, x=None, y=None, hue=None, height=0.025, expand_margins=True, palette=None, hue_order=None, hue_norm=None, legend=True, ax=None, **kwargs)

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

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

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

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

Давайте приступим к созданию линейных диаграмм в Seaborn.

Создание Seaborn Rugplot с помощью Rugglot

Чтобы создать простой коврик-диаграмму (rug plot), мы можем просто передать Pandas DataFrame в параметр data= и метку столбца в параметр x= или y=. Давайте посмотрим, как это выглядит:

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

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

В приведенном выше примере мы импортировали наши библиотеки – Seaborn и Matplotlib. Затем мы загрузили наш набор данных с помощью функции load_dataset() из Seaborn. Наконец, мы создали rug plot, передав 'body_mass_g' в параметр x=. Это возвращает приведенный ниже график:

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

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

Объедините коврик Seaborn с другим сюжетом

Сам по себе график-коврик (rugplot) в Seaborn показывает довольно много деталей, но кажется не таким полезным, как другие графики распределения, такие как графики KDE и гистограммы. Однако сила графика-коврика проявляется, когда его комбинируют с другим графиком.

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

# Комбинирование графика-полоски (rug plot) в Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm')
sns.rugplot(data=df, x='body_mass_g', y='bill_length_mm')
plt.show()

В приведенном выше коде сначала мы вызываем функцию scatterplot() библиотеки Seaborn, а затем вызываем функцию rugplot(). Это приводит к следующей визуализации данных:

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

Добавление дополнительных категорий в Seaborn Rugplots с помощью Hue

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

# Добавление цвета к графику-полоске (rug plot) в Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', hue='sex')
sns.rugplot(data=df, x='body_mass_g', y='bill_length_mm', hue='sex')
plt.show()

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

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

Изменение ширины линий и альфа в Seaborn Rugplots

При работе с наборами данных, содержащими большое количество точек, детали rugplot теряются. Чтобы решить эту проблему, мы можем использовать параметры alpha= и lw=. Эти параметры контролируют прозрачность и ширину линии индивидуальных полос в rugplot Seaborn

# Изменение толщины линии и прозрачности в графиках-полосках (rugplot) Seaborn
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('penguins')

sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm')
sns.rugplot(data=df, x='body_mass_g', y='bill_length_mm', alpha=0.1, lw=10)
plt.show()

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

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

Заключение

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

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

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

Чтобы узнать больше о связанных темах, изучите следующие ресурсы:

Last updated