Обзор функций Seaborn

Функции построения графиков в Seaborn можно разделить на несколько групп. Но помимо построения графиков, так же приходится работать с настройками элементов графиков а так же используемыми цветовыми палитрами, для этих целей так же существуют специальные функции.


Реляционные графики

Реляционные графики нужны для визуализации статистической или функциональной зависимости между переменными:

Реляционные графики в Seaborn.

Важной особенностью функций построения графиков в Seaborn является то, что они делятся на два уровня абстрактности. Например, функции scattrplot() и lineplot() могут создавать только один график на уровне области Axes Matplotlib и принимают любые последовательности данных (списки, кортежи, массивы NumPy и серии Pandas). Но более абстрактная функция relplot() использует эти функции для создания многосегментных графиков и принимает данные только в виде объектов DataFrame Pandas. Благодаря функции relplot() можно создавать, например вот такие графики:

многосегментный реляционный график в Seaborn.

Функция relplot() управляет графиком на уровне области Figure Matplotlib и может располагать графики (области Axes) в несколько строк и (или) столбцов, при этом выбрать тип графика, т.е. какая функция scattrplot() или lineplot() будет использоваться для рисования подграфиков можно с помощью параметра kind.


Графики распределений

Графики распределений отражают статистическое распределение некоторой переменной или совместное распределение нескольких переменных. Самыми распространенными среди них являются гистограммы и графики оценки плотности ядра (kde), а вот спользование графиков эмпирической функции распределения вероятности (ecdf) можно встретить не так часто:

Графики распределений в Seaborn.

На данном рисунке присутствует еще один вспомогательный вид графика rugplot(), который изображает точки наблюдений в виде маленьких полосок около числовой оси. Гистограммы и kde-графики могут отражать характер совместного распределения двух величин:

Двумерные графики гистограммы и kde в Seaborn.

При этом функция displot() является более абстрактной и может располагать больше категориальных переменных на подграфиках вдоль строк и столбцов:

Двумерные графики гистограммы и kde в Seaborn.


Категориальные графики

Категориальные графики необходимы если значения переменной могут быть разделены на категории (подмножества) и показывают распределения внутри каждой категории:

Категориальные графики в Seaborn.

Функция catplot() позволяет отобразить больше переменных:

Несколько категориальных графиков в Seaborn.


Регрессионые модели

Регрессионые модели - это графики, которые позволяют оценить влияние одних переменных на другие:

Несколько регрессионных графиков в Seaborn.

На первом графике представлена функция regplot(), которая и строит регрессионные модели. А на втором графике представлена функция residplot(), которая позволяет оценить приемственность линейной регрессии к набору данных.

Функция lmplot() использует их обе и позволяет отображать больше переменных:

Несколько регрессионных графиков в Seaborn разбитых по категориям.


Матричные модели

Матричные модели - позволяют строить тепловые карты и кластерные карты с дендрограммами:

Тепловая карта в Seaborn.

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

Кластерная карта в Seaborn.


Классы для многосегментных графиков

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

FacetGrid в Seaborn.

Этот класс используют функции relplot(), displot(), catplot() и lmplot() когда формируют сетку для подграфиков. Но сам класс FacetGrid предоставляет доступ к более тонким настройкам элементов графика.

Класс PairGrid позволяет строить многосегментный график в котором отражены все парные и индивидуальные распределения в данных:

PairGrid в Seaborn.

Для быстрого построения подобных графиков даже есть отдельная функция pairplot(), но класс PairGrid предоставляет гораздо больше настроек.

Класс JointGrid показывает совместное и индивидуальное распределение двух переменных:

JointGrid в Seaborn.

Для быстрого построения подобных графиков так же есть функция jointplot(), но класс JointGrid более гибок при настройке.


Прочие вспомогательные функции

Помимо функций для построения графиков, Seaborn так же содержит ряд вспомогательных функций, для настройки стилей, элементов и цветовых палитр графиков. Например для быстрой смены стиля графиков в зависимости от их типа можно воспользоваться функцией set(). Так, например, для графиков разброса и линейных графиков лучше подходят темные темы:

Темная тема в Seaborn.

А для более тяжелых элементов, лучше подойдет светлая тема:

Светлая тема в Seaborn.

Можно быстро убрать сетку и перенастроить оси графика:

Настройка элементов графика в Seaborn.

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

Просмотр палитры в Seaborn.

А создать собственную можно с помощью целого ряда функций или виджетов:

Виджет для создания палитры в Seaborn.