Seaborn swarmplot: Bee Swarm Plots для распределения категориальных данных
Last updated
Last updated
Функция swarmplot в Seaborn позволяет создавать визуализации данных, которые легко и эффективно показывают числовое распределение данных по категориям. Существует множество функций для этого: boxplot и violin plot — это две из них, но они могут быть сложными для понимания нетехническими аудиториями.
Это то место, где график роя (или beeswarm plot) может быть очень полезен! На самом деле, график роя можно комбинировать с диаграммой размаха или виолончельным графиком для добавления дополнительных деталей. В этом руководстве вы узнаете, как использовать функцию swarmplot из Seaborn для создания диаграмм рассеяния роя, чтобы легко визуализировать числовые распределения по категориальным переменным.
В конце этого руководства вы изучите следующее:
Как понять и использовать функцию Seaborn sns.swarmplot()
Когда роевые диаграммы являются хорошей альтернативой простым диаграммам рассеяния, диаграммам ящиков и диаграммам скрипки
Как настроить графики роя Сиборна, чтобы добавить больше деталей с помощью цвета и форм маркеров
Как настроить метки, заголовки и многое другое
Оглавление
Прежде чем приступить к созданию диаграмм типа swarm в Seaborn, давайте разберемся, что это такое и почему они полезны. Визуализация числовых распределений по категориальным переменным может быть сложной задачей. Например, использование таких методов, как столбчатые диаграммы, требует агрегировать значения в одно, например, среднее значение распределения. Использование таких визуализаций, как точечные диаграммы, может привести к результатам, которые трудно интерпретировать.
Графики роя аналогичны полосовым графикам, однако они добавляют распределение точек данных. Эти графики помогают лучше понять распределение данных в концентрированных областях. В отличие от полосовых, графики роя обеспечивают большую наглядность, облегчая просмотр точек данных без наложений.
Узнать больше о вышеупомянутых графиках можно в моих ресурсах:
Seaborn strip plots
Функция swarmplot()
в Seaborn предлагает множество параметров, которые позволяют значительно настраивать графики. На самом деле, параметров так много, что мы сосредоточимся в основном на тех, которые вы будете использовать чаще всего:
Мы видим, что существует большое количество параметров. Давайте разберем важные параметры функции swarmplot()
из библиотеки Seaborn. Мы будем использовать эти параметры на протяжении всего руководства:
data=
определяет данные, которые мы хотим использовать, такие как DataFrame библиотеки Pandas.
x=
и y=
задают метки данных или столбцов, которые мы хотим использовать для оси x и оси y соответственно.
hue=
добавляет другое измерение к графику, используя разные цвета для различных переменных.
dodge=
позволяет разделить цвета в одной и той же категории на две разные группы
alpha=
позволяет вам изменить прозрачность точек. Обратите внимание, что это не является явным параметром функции, но может быть передано с использованием дополнительных аргументов ключевых слов функции scatterplot библиотеки Matplotlib.
Теперь, когда вы хорошо понимаете важные параметры функции swarmplot в Seaborn, давайте рассмотрим, как создать график с ее помощью.
Так как Seaborn использует общую структуру для своих функций, создание диаграммы типа "рой" простое и интуитивно понятное. Мы можем просто передать DataFrame и метки столбцов в параметры data=
, x=
, и y=
функции sns.swarmplot()
. Давайте посмотрим, как можно создать простой график роя пчел в Seaborn:
В коде выше мы передали наш DataFrame, df
, в параметр data=
. Аналогично, поскольку мы используем Pandas DataFrame, мы можем передавать метки столбцов как строки в соответствующие параметры оси x и оси y. Это возвращает следующее изображение:
В следующем разделе вы узнаете, как добавить дополнительные переменные к диаграммам роения, используя дополнительные цвета.
В созданном выше точечном графике мы отобразили информацию в двух измерениях. Мы можем добавить третий параметр на график, используя параметр hue=
. Это добавит дополнительную колонку данных, разбивая переменную на разные цвета.
В коде выше мы добавили hue='sex'
, что разделило значения в этом столбце на разные цвета. Это возвращает изображение ниже, где точки разделены на разные цвета.
Мы видим, что точки добавлены. Однако из-за того, что они перекрываются в категориях, может быть трудно увидеть, где они сгруппированы. Вы узнаете, как решить эту проблему, в следующем разделе.
По умолчанию точки на ленточном графике перекрываются в разных категориях. Это может затруднить восприятие кластеров значений. Чтобы решить эту проблему, мы можем разделить группы на отдельные кластеры. Таким образом, мы можем увидеть, сколько точек данных попадает в каждую подкатегорию. Для этого мы устанавливаем булев параметр dodge=
в True
.
В кодовом блоке выше мы изменили параметр dodge=
для разделения точек на соответствующие группы. Это привело к получению следующего изображения:
В следующем разделе вы узнаете, как использовать графики-свормы, изменяя прозрачность.
В некоторых случаях точки на рой-диаграмме будут перекрываться. В таких ситуациях невозможно увидеть, сколько точек на самом деле сгруппированы в данной позиции. В этих случаях мы можем изменить прозрачность отдельных точек, чтобы лучше понять кластеризацию.
Посмотрим, как использовать параметр alpha=
для изменения прозрачности. Аргумент принимает значение с плавающей запятой от 0.0 до 1.0, где меньшие значения обозначают более высокую прозрачность.
На изображении ниже показано, как мы успешно изменили прозрачность отдельных элементов.
В следующем разделе вы узнаете, как творчески использовать графики роев, добавляя их к виолончельным графикам.
Мы можем объединить сварам-плот с виолончельным графиком Seaborn, чтобы помочь пользователям лучше понять виолончельный график. Seaborn упрощает это, просто вызывая обе функции. Seaborn затем добавит графики к тому же объекту осей. Посмотрим, как это выглядит:
Используя функции плотности для скрипки и роя, Seaborn отображает их в одном визуализации. Это возвращает следующий график:
Мы видим, что это позволяет пользователям лучше понять основное распределение в графике скрипки Seaborn.
Seaborn позволяет легко изменить цветовую палитру вашего графика. Один из способов сделать это — вызвать функцию sns.set_palette()
и передать в нее именованную палитру. Давайте посмотрим, как можно использовать палитру 'Set2'
, которая возвращает более мягкую, пастельную цветовую схему.
При передаче палитры 'Set2'
, Seaborn создаёт следующий изображение нашего swarmplot.
В следующем разделе вы узнаете, как добавить заголовки и подписи к осям к вашему графику beeswarm в Seaborn.
По умолчанию Seaborn не добавляет заголовок, но использует метки столбцов в качестве меток для осей x и y. Мы можем изменить это, используя следующие методы для осей:
ax.set_title()
, чтобы задать заголовок
ax.set_xlabel()
, чтобы установить метку оси x
Используйте ax.set_ylabel()
для установки метки по оси Y.
Существует множество различных вариантов настройки, которые позволяют добавлять гибкость в стилизацию заголовков и меток осей в Seaborn. Давайте посмотрим, как это выглядит:
Мы видим, что смогли добавить метку и настроить её с помощью параметра fontdict=
. Этот параметр позволяет задавать настройки в соответствии с опциями стилизации текста
Мы видим, что это добавляет больше деталей к графикам в Seaborn, делая их содержание гораздо более понятным для читателя.
В этом уроке вы узнали, как создавать точечные графики с помощью функции sns.swarmplot()
в библиотеке Seaborn. Точечные графики, или beeswarm-графики, представляют собой точечные диаграммы, отображающие непрерывные данные над категориальными данными. Они расширяют полосатые диаграммы, добавляя больше расстояния между данными.
Сначала вы узнали, как работают параметры функции и какие из них наиболее важны. Затем вы научились создавать простой диаграмму-рой и улучшать её, изменяя используемые цвета. После этого вы сделали график более четким, добавив разделение между цветами. Далее, вы наложили диаграмму-рой на диаграмму-скрипку, чтобы сделать её более понятной для нетехнических аудиторий. Наконец, вы узнали, как настраивать диаграммы, изменяя цветовую палитру и добавляя заголовки и подписи к осям на графике.
Чтобы узнать больше о связанных темах, ознакомьтесь с ресурсами ниже
Seaborn Boxplot – Как создать диаграммы типа «ящик с усами»
Seaborn Violin Plots in Python: полное руководство
Seaborn Pointplot: Центральная Тенденция для Категориальных Данных