На этом шаге мы рассмотрим назначение и примеры использования этой функции.
По функциональным возможностям и назначению функция catplot() подобна функции relplot() из набора инструментов для визуализации отношений в данных (см. 103 шаг "Визуализация отношений с настройкой подложки. Функция relplot()"). Её особенность заключается в том, что она предоставляет общий интерфейс для всех функций из группы визуализации категориальных данных, также она позволяет работать с параметрами уровня фигуры, которые управляют размещением диаграмм. Уровень фигуры в данном случае определяется объектом класса FacetGrid, через который происходит непосредственно управление размещением.
Познакомимся с этим инструментом поближе, предварительно зададим стиль и контекст:
sns.set_style("whitegrid") sns.set_context("notebook")
Загрузим набор данных tips для экспериментов:
  tips = sns.load_dataset("tips")
Построим точечную диаграмму распределения значений категориальной переменной day:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns sns.set_style("whitegrid") sns.set_context("notebook") tips = sns.load_dataset("tips") sns.catplot(x='day', y='total_bill', kind='strip', data=tips) plt.show()

Рис.1. Демонстрация работы функции catplot()
Как вы можете видеть из рисунка, мы получили диаграмму, аналогичную той, что создаётся функцией stripplot(). Параметром catplot(), через который задаётся тип диаграммы, является kind:
| Значение параметра kind | Функция seaborn | 
|---|---|
| strip | stripplot() | 
| swarm | swarmplot() | 
| box | boxplot() | 
| violin | violinplot() | 
| boxen | boxenplot() | 
| point | pointplot() | 
| bar | barplot() | 
| count | countplot() | 
Назначение параметров x, y, data, hue, estimator, ci, order, order_hue, orient, color и palette аналогично одноимённым из рассмотренных ранее функций визуализации категориальных данных. На них мы не будем останавливаться. Перейдём непосредственно к аргументам, через которые мы можем управлять расположением диаграмм. Начнем с col и row:
Построим диаграммы распределения количества оставленных чаевых от дня недели, с разделением на столбцы:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns sns.set_style("whitegrid") sns.set_context("notebook") tips = sns.load_dataset("tips") sns.catplot(x='day', y='total_bill', col='sex', kind='strip', data=tips) plt.show()

Рис.2. Демонстрация работы с параметром col функции catplot()
Изменим этот пример так, чтобы разделение производилось по строкам:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns sns.set_style("whitegrid") sns.set_context("notebook") tips = sns.load_dataset("tips") sns.catplot(x='day', y='total_bill', row='sex', kind='strip', data=tips) plt.show()

Рис.3. Демонстрация работы с параметром row функции catplot()
Для управления размером диаграмм и соотношением сторон используйте параметры height и aspect:
Приведём несколько примеров, демонстрирующих работу с height и aspect:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns sns.set_style("whitegrid") sns.set_context("notebook") tips = sns.load_dataset("tips") sns.catplot(x='day', y='total_bill', col='sex', height=5, aspect=0.5, kind='strip', data=tips) plt.show()

Рис.4. Демонстрация работы с параметрами height и aspect функции catplot() (пример 1)
import matplotlib.pyplot as plt import numpy as np import seaborn as sns sns.set_style("whitegrid") sns.set_context("notebook") tips = sns.load_dataset("tips") sns.catplot(x='day', y='total_bill', col='sex', height=5, aspect=1.5, kind='strip', data=tips) plt.show()

Рис.5. Демонстрация работы с параметрами height и aspect функции catplot() (пример 2)
На следующем шаге мы закончим изучение этого вопроса.