Средняя тенденция для категориальных данных в Seaborn Pointplot
В этом руководстве вы научитесь использовать функцию pointplot библиотеки Seaborn для создания точечных графиков. Точечные диаграммы выполняют аналогичные функции, что и столбчатые диаграммы, но предоставляют больше информации, такие как погрешность вокруг меры центральной тенденции. Возможно, это звучит немного сложно – не волнуйтесь, это руководство поможет вам легко понять ценность точечных графиков и научиться их создавать.
К концу этого урока вы узнаете следующее:
Что такое точечный график и почему вы хотите его использовать
Как использовать функцию
sns.pointplot()
Как создавать и настраивать точечные графики с помощью Seaborn
Оглавление
Понимание точечных графиков
Прежде чем глубоко погружаться в создание точечных графиков в Seaborn, давайте сначала рассмотрим, что такое точечные графики. Поскольку точечные графики встречаются довольно редко, на первый взгляд они могут показаться немного запутанными. В сущности, точечные графики агрегируют непрерывную переменную (по оси Y) по категориальной переменной (по оси X).
Это делает их довольно похожими на столбчатые диаграммы. Однако они также предоставляют линии ошибок, чтобы показать различные меры, такие как доверительные интервалы. Аналогично, они используют линии между измерениями (хотя они отличаются от линейных диаграмм!). Это облегчает восприятие различий между категориями.
Взгляните на изображение ниже, на котором показаны аспекты точечного графика:
Теперь, когда у вас есть хорошее понимание того, что такое точечные графики и зачем они вам могут понадобиться, давайте погрузимся в то, как работает функция sns.pointplot().
Понимание функции точечной диаграммы Seaborn
Прежде чем перейти к созданию собственных точечных диаграмм в Seaborn, давайте рассмотрим функцию, которая позволяет это делать. В Seaborn есть встроенная функция, sns.pointplot()
, которую можно использовать для создания точечных диаграмм. Посмотрите на блок кода ниже, чтобы увидеть, как написана функция:
Из представленного выше блока кода видно, что функция предлагает множество различных параметров. Эти параметры обеспечивают значительную гибкость в создании ваших графиков.
В этом руководстве мы не рассмотрим все параметры, однако мы научим вас использовать наиболее важные из них, что позволит вам создавать информативные и красивые графики.
Создание простого точечного графика с помощью Seaborn
Давайте начнем этот урок, создав очень простую точечную диаграмму в Seaborn. Мы можем сделать это, используя только три параметра в функции sns.pointplot().
data=
указывает на pandas DataFrame, который мы хотим использоватьx=
обозначает метку категориального столбца, которую мы хотим использовать. Даже если мы передаем непрерывную переменную, Seaborn будет интерпретировать это как категориальную.y=
обозначает столбец, по которому мы хотим агрегировать данные
Давайте посмотрим, как мы можем использовать то, что вы только что узнали, для создания нашей первой точечной диаграммы:
В приведенном выше блоке кода мы импортировали Seaborn и pyplot. Затем мы использовали функцию sns.load_dataset()
для загрузки набора данных 'tips'
. Наконец, мы создали точечный график с использованием функции sns.pointplot()
, который отображается ниже:
График по умолчанию показывает нам следующую информацию:
Средний размер чаевых, разбитый по дням (представлен точками на графике)
Относительное изменение между днями (представлено линиями, соединяющими точки)
95%-ный доверительный интервал, основанный на результатах бутстрэппинга (отображается вертикальными линиями, пересекающимися с точками)
Этот график сам по себе дает нам массу информации! Но на этом останавливаться не обязательно. Мы можем использовать множество параметров, которые предлагает нам функция, для того, чтобы сделать график более персонализированным. Давайте посмотрим, как мы можем добавить дополнительную категориальную переменную к нашему графику, используя параметр hue=
в следующем разделе.
Добавление цвета для дополнительных переменных с помощью точечной диаграммы Seaborn
Отличный способ добавить больше деталей в точечный график Seaborn - это использовать параметр hue=
для добавления дополнительной переменной к визуализации. Этот параметр позволяет разделить вашу категориальную переменную на дополнительные группы, разбивая переменную на соответствующие группы.
Давайте посмотрим, как мы можем добавить еще одно измерение к нашему графику, разделив данные еще раз, используя столбец 'пол'
. Таким образом, мы сможем анализировать, как средний размер чаевых менялся не только по дням, но и в зависимости от пола обслуживающего персонала.
Это делит данные каждого нашего дня на количество существующих в этом столбце категорий. В данном случае создается разделение на Мужчины и Женщины. Посмотрите, как это изменило визуализацию ниже: В приведенном выше блоке кода мы изменили наш исходный код, добавив hue='sex'
. Поскольку мы используем в качестве аргумента data=
DataFrame из Pandas, мы можем просто передавать метки столбцов.
В данный момент эту визуализацию довольно сложно рассмотреть. Из-за того что наши линии перекрываются, мы теряем довольно много деталей. Давайте исправим это в следующем разделе.
Предотвращение перекрытия на графиках точек Seaborn
Мы можем предотвратить наложение линий в точечных графиках Seaborn, используя параметр dodge=
. По умолчанию он установлен в значение False
. Изменив его на True
, Seaborn разделит линии.
При использовании параметра dodge=True
мы получаем следующее изображение, где линии точечного графика немного раздвинуты.
Параметр dodge=
не принимает только булево значение. Мы можем дополнительно настроить вывод, передав в него число с плавающей точкой. Посмотрите на блок кода ниже, где мы делаем именно это.
В приведенном выше блоке кода мы добавили к параметру dodge=
значение 0.25
. Это позволяет сместить линии на 0.25 от ширины категории.
Этот процесс может быть несколько эвристическим. По мере того как вы увеличиваете количество разделений с помощью параметра hue=
, вам, возможно, придется подобрать это значение, чтобы оно отображало данные так, как вам нужно.
В следующем разделе вы научитесь изменять оценщик, который Seaborn использует при создании точечных диаграмм.
Изменение расчета оценщика на точечных графиках Seaborn
По умолчанию функция pointplot()
в Seaborn агрегирует переменные до их среднего значения. Однако мы можем настроить способ агрегации данных с помощью параметра estimator=
. Параметр принимает либо строку, представляющую статистическую функцию (например, 'std'
для стандартного отклонения), либо вызываемый объект, который отображает вектор.
Давайте посмотрим, как мы можем попросить Seaborn показать стандартное отклонение для каждой категории, а не среднее значение.
Для изменения оценщика достаточно передать строку (или вызываемый объект) в параметр estimator=
. Передав 'std'
, мы агрегировали данные для отображения стандартного отклонения по каждому дню и гендеру.
Мы можем сделать нашу визуализацию еще более наглядной, добавив на концы наших планок погрешностей "шапочки". Давайте рассмотрим это в следующем разделе.
Добавление пределов к полосе ошибок на графиках точек Seaborn
Добавление колпачков к нашим погрешностям может быть полезным способом, чтобы сделать диапазоны ошибок более понятными. Seaborn позволяет это сделать, используя параметр capsize=
, который принимает в качестве ввода число с плавающей точкой. Подобно предыдущему, это представляет собой дробное представление ширины нашей категории.
В приведенном выше блоке кода мы передали значение 0.25, что создало концевую заглушку погрешности, равную четверти ширины категории. Посмотрите на изображение ниже, чтобы увидеть, что получилось в итоге:
Теперь, когда мы научились добавлять шапочки к нашим планкам погрешности, давайте посмотрим на изменение расчета, который использует планка погрешности.
Изменение расчета панели погрешностей на графиках точек Seaborn
По умолчанию Seaborn создает планку ошибки, основанную на рассчитанном 95% доверительном интервале. Seaborn будет использовать бутстрапирование результата (то есть выборку точек с заменой) заданное количество раз (по умолчанию 1000 раз). Однако мы можем изменить это, используя другой метод расчета планки ошибки.
Seaborn принимает следующие расчеты для погрешностей: 'ci', 'pi', 'se', или 'sd'
, которые представляют следующие расчеты:
'ci'
: интервал доверия, который рассчитывает непараметрическую неопределенность'pi'
: процентильный интервал, который рассчитывает непараметрическое распределение'se'
: стандартная ошибка, которая рассчитывает параметрическую неопределенность'sd'
: стандартное отклонение, которое вычисляет параметрическое распределение
Давайте посмотрим, что произойдет, когда мы передадим 'sd'
, чтобы вычислить стандартное отклонение:
Путем изменения параметра errorbar=
, мы получаем следующую визуализацию. Теперь график показывает стандартное отклонение для каждой категории.
Мы также можем полностью убрать планки ошибок – давайте посмотрим, как это выглядит в следующем разделе.
Удаление полос ошибок на графиках точек Seaborn
Диаграмма с точками может быть трудной для понимания неспециалистами. Это особенно усугубляется добавлением планок ошибок, которые вносят дополнительный уровень сложности (а также полезные данные).
Ошибка в предоставленной информации. Для удаления планок ошибок в точечной диаграмме Seaborn следует использовать параметр ci=None
, а не errorbar=None
. Это полностью уберёт индикаторы ошибок.
При передаче значения None
в параметр errorbar=
, мы получаем следующее изображение. Стоит помнить, что теперь оно выглядит как линейный график. Это может еще больше сбить с толку читателей вашего графика.
В приведенной выше визуализации мы полностью удалили полосы ошибок. Давайте продолжим настройку нашей визуализации, сначала добавив заголовок.
Добавление заголовка к точечному графику Seaborn
Вы можете легко добавить заголовок к точечному графику Seaborn, используя метод .set_title()
. Метод применяется непосредственно к объекту осей. Это означает, что мы можем просто присоединить метод к функции sns.pointplot()
. Давайте посмотрим, как это выглядит:
В приведенном выше коде мы использовали метод .set_title()
в цепочке с объектом осей точечной диаграммы. Передавая строку, мы смогли добавить заголовок к нашей визуализации, как показано ниже:
Мы также можем настраивать подписи осей нашей точечной диаграммы. Давайте рассмотрим, как это выглядит в следующем разделе.
Изменение меток осей на точечных графиках Seaborn
Seaborn предоставляет полезные методы для изменения названий и меток. В предыдущем разделе мы добавили заголовок к нашему графику. Давайте теперь настроим метки осей.
По умолчанию Seaborn использует названия столбцов в качестве меток осей. Мы можем изменить это, используя аналогичные методы, о которых вы узнали выше.
В предыдущем разделе мы использовали цепочку вызова метода .set_title()
к нашему вызову функции. Это было возможно, потому что функция sns.pointplot()
возвращает объект осей. Однако мы не можем продолжать использовать цепочки методов из-за того, что метод .set_title()
возвращает.
Из-за этого, сначала нам нужно создать объект axes
и добавить несколько вызовов методов, чтобы изменить наши метки осей.
В приведенном выше блоке кода мы сначала создали ax
, который представляет объект осей. Затем мы использовали метод .set_xlabel()
для установки метки для оси X и метод .set_ylabel()
для установки метки для оси Y.
Данное задание предполагает возврат следующей визуализации:
Мы смогли добавить пользовательские метки к нашему точечному графику.
Использование палитры с точечными графиками Seaborn
В этом заключительном разделе мы рассмотрим, как настроить создаваемый нами график, используя встроенную палитру. Seaborn предоставляет значительную гибкость в отношении стилизации вашего графика. Однако вы можете упростить эту задачу, используя встроенную палитру.
Давайте посмотрим, как мы можем использовать палитру 'Set2'
в функции построения точечного графика:
Путем передачи палитры с использованием параметра palette=
, мы можем легко стилизовать наш график, как показано ниже:
Seaborn предлагает множество удобных палитр для легкого и интуитивно понятного оформления ваших графиков. Следите за своими любимыми, чтобы упростить этот процесс.
Заключение
В этом руководстве вы научились создавать точечные диаграммы в Seaborn с помощью функции sns.pointplot()
. Сначала вы узнали, что такое точечные диаграммы и когда они могут быть полезны. Затем вы ознакомились с различными параметрами функции.
Вы построили точечные графики возрастающей сложности. Сначала, добавив дополнительные детали с помощью цвета, затем, настроив расчеты оценщика и погрешностей, доступные на графике. Вы также научились настраивать график, добавляя заголовок, метки осей и изменяя палитру графика.
Дополнительные ресурсы
Чтобы узнать больше о смежных темах, ознакомьтесь с ресурсами ниже:
Seaborn Catplot — Визуализация категориальных данных в Python
Seaborn Boxplot – Как создать прямоугольные и усовые диаграммы
Сюжеты Seaborn Violin на Python: полное руководство
Seaborn barplot() – создание гистограмм с помощью sns.barplot()
Seaborn Countplot — подсчет категориальных данных в Python
Swarmplot Seaborn: графики пчелиного роя для распределения категориальных данных
График Сиборна: графики джиттера для распределения категориальных данных
Last updated