На этом шаге мы рассмотрим назначение и примеры использования этой функции.
По функциональным возможностям и назначению функция 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)
На следующем шаге мы закончим изучение этого вопроса.