Seaborn stripplot: Jitter Plots для распределений категориальных данных
Функция stripplot в библиотеке Seaborn позволяет создавать визуализации данных, которые легко и эффективно показывают числовое распределение данных по категориям. Не так много функций, которые позволяют это сделать: boxplot и violin plot — это две из них, но они могут быть сложными для аудитории, не владеющей техническими знаниями.
Это то, где на помощь приходит стрип-плот (или джиттер-плот)! Фактически, стрип-плот можно комбинировать с графиком рамки и усов или с графиком виолончели, чтобы добавить дополнительные детали. В этом руководстве вы узнаете, как использовать функцию stripplot из Seaborn для создания джиттер-диаграмм рассеивания для легкой визуализации числовых распределений по категориальным переменным.
К концу этого руководства вы научитесь следующему:
Как понимать и использовать функцию Seaborn
sns.stripplot()
Когда диаграммы с джиттером являются хорошей альтернативой простым точечным диаграммам, ящичным диаграммам и виолончельным диаграммам
Как настроить строчные графики Seaborn для добавления деталей с помощью цвета и форм маркеров
Как настроить метки, заголовки и другие элементы
Содержание
Что такое полосовые сюжеты и когда вы хотите их использовать?
Прежде чем приступить к созданию полосчатых графиков Seaborn, давайте разберемся, что это такое и почему они полезны. Визуализация числовых распределений по категориям может быть сложной задачей. Например, используя такие техники, как столбчатые диаграммы, необходимо агрегировать значения в одно. Использование таких визуализаций, как точечные диаграммы, приводит к результатам, которые могут быть трудными для понимания (посмотрите на верхний правый визуал ниже).
Взгляните на графики ниже, которые сравнивают различные варианты визуализации, включая диаграммы разброса (strip plots), скрипичные графики (violin plots) и ящики с усами (box and whisker plots)
Здесь полезны strip графики. Они добавляют некоторый шум к точкам, чтобы лучше понять распределение различных данных. Это похоже на функцию swarmplot, которая добавляет более структурированный шум к графикам.
Понимание функции Seaborn stripplot
Функция stripplot()
в Seaborn предлагает много различных параметров. Они позволяют значительно настроить графики. Давайте рассмотрим параметры, доступные в функции stripplot Seaborn:
Мы видим, что есть много параметров. Давайте разберем важные параметры функции stripplot()
в Seaborn:
data=
определяет данные, которые мы хотим использовать, например, Pandas DataFramex=
иy=
определяют ряды данных или метки столбцов, которые мы хотим использовать для оси x и оси y соответственноhue=
добавляет еще одно измерение к графику, используя разные цвета для различных переменныхalpha=
позволяет изменять прозрачность точек. Обратите внимание, что это не явный параметр функции, но его можно передать, используя дополнительные именованные аргументы функции scatterplot в Matplotlib.
Теперь, когда у вас есть хорошее понимание важных параметров функции stripplot из Seaborn, давайте приступим к созданию графика с использованием этой функции.
Как создать ленточный график в Seaborn
Для создания strip plot в Seaborn, вы можете передать DataFrame из Pandas и два названия столбцов (для оси x и оси y) в функцию sns.stripplot()
. Поскольку Seaborn использует общую структуру для своих функций, создание strip plot просто и интуитивно понятно. Давайте посмотрим, как можно создать простой jitter plot в Seaborn:
В приведенном выше блоке кода мы передали наш DataFrame, df
, в параметр data=
. Аналогично, поскольку мы используем Pandas DataFrame, мы можем передавать метки столбцов как строки в соответствующие параметры осей x и y. Это возвращает следующее изображение:
В следующем разделе вы узнаете, как добавить дополнительные переменные к стрип-плотам, используя дополнительные цвета.
Как добавить цвет для дополнительных переменных на полосовых диаграммах Seaborn
В созданном выше графике мы добавили информацию по двум измерениям. Мы можем добавить третью переменную, используя параметр hue=
. Это добавляет дополнительную колонку данных, разделяя переменную на разные цвета.
В приведённом выше коде мы добавили hue='sex'
, который разделяет значения в этом столбце на разные цвета. Это возвращает изображение ниже, где точки разделены на разные цвета.
Мы видим, что точки были добавлены. Однако, из-за их полной непрозрачности, может быть трудно увидеть, где они сконцентрированы. Вы узнаете, как это исправить, в следующем разделе.
Как изменить прозрачность на полосовых диаграммах Seaborn
По умолчанию точки на ленточном графике полностью непрозрачны. Это может затруднить восприятие различных кластеров значений. Чтобы решить эту проблему, мы можем изменить прозрачность каждого маркера, используя параметр alpha=
. Параметр принимает значение от 0 до 1, где более низкие значения более прозрачны.
В приведенном выше фрагменте кода мы указали alpha=0.35
, что устанавливает прозрачность на 35%. Это возвращает изображение ниже, где перекрывающиеся значения становятся намного яснее.
В следующем разделе вы узнаете, как творчески использовать джиттер-плоты, добавляя их к виолончельным графикам.
Как добавить полосовые сюжеты к графикам Seaborn Violin
Мы можем объединить strip-диаграмму с violin-диаграммой в Seaborn, чтобы пользователи лучше поняли violin-диаграмму. С Seaborn это просто: нужно вызвать обе функции. Seaborn добавит диаграммы на тот же объект оси. Давайте посмотрим, как это выглядит:
Вызов функций скрипичного и точечного графиков в Seaborn отображает оба этих графика в одной визуализации. Это возвращает следующую визуализацию данных:
Мы можем видеть, что это позволяет пользователям лучше понять основное распределение на графике скрипки в Seaborn.
Как изменить палитру ленточного графика Seaborn
Seaborn позволяет легко изменять палитру цветов вашего графика. Один из способов сделать это - вызвать функцию sns.set_palette()
и передать ей именованную палитру. В примере ниже мы используем палитру 'Set2'
Передав палитру 'Set2'
, Seaborn создает следующее изображение:
В следующем разделе вы узнаете, как добавить заголовки и метки осей к вашему графику разброса в Seaborn.
Как добавить заголовки и метки осей к полосовым диаграммам Seaborn
По умолчанию Seaborn не включает заголовок, но добавляет метки столбцов в качестве меток осей x и y. Мы можем изменить это, используя следующие методы:
ax.set_title()
, чтобы установить заголовок,ax.set_xlabel()
, чтобы установить метку оси X, иax.set_ylabel()
для установки метки оси Y
Параметры настройки Seaborn
Существует множество различных параметров настройки, которые позволяют добавить гибкость в то, как ваши заголовки и метки осей в Seaborn стилизованы. Давайте посмотрим, как это выглядит:
Мы видим, что смогли добавить метку и настроить её, используя параметр fontdict=
. Этот параметр позволяет применять настройки на основе вариантов оформления текста в Matplotlib.
Видно, что это добавляет много деталей к графикам в Seaborn, делая их более понятными для читателя.
Заключение
В этом уроке вы узнали, как создавать точечные графики в Seaborn с помощью функции sns.stripplot()
. Точечные графики, или графики с рассеиванием, представляют собой диаграммы рассеивания, отображающие непрерывные данные в категориальных данных. Добавляя небольшое количество смещения к точкам, данные становятся более заметными.
Сначала вы узнали, как работают параметры функции и какие параметры являются наиболее важными. Затем вы научились создавать простой диаграмму разброса и улучшать её, изменяя используемые цвета. Далее вы научились делать график более чётким, добавляя прозрачность. После этого вы наложили точечный график на скрипичную диаграмму, чтобы сделать его более понятным для нетехнической аудитории. Наконец, вы узнали, как настраивать графики, изменяя палитру цветов и добавляя заголовки и метки осей.
Дополнительные ресурсы
Чтобы узнать больше по смежным темам, ознакомьтесь с ресурсами ниже:
Seaborn Catplot — Визуализация категориальных данных в Python
Seaborn Boxplot – Как создать прямоугольные и усовые диаграммы
Графики Seaborn Violin на Python: полное руководство
Seaborn barplot() – создание гистограмм с помощью sns.barplot()
Seaborn Countplot — подсчет категориальных данных в Python
Swarmplot Seaborn: графики пчелиного роя для распределения категориальных данных
График Seaborn Pointplot: центральная тенденция для категориальных данных
Last updated