Шаг 122.
Язык Python. Визуализация данных. Библиотека Seaborn. Визуализация категориальных данных. Работа на уровне фигуры. Функция catplot()

    На этом шаге мы рассмотрим назначение и примеры использования этой функции.

    По функциональным возможностям и назначению функция 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: str, optional
Тип диаграммы. В таблице 1 приведено соответствие значения параметра kind и функции из набора инструментов для визуализации категориальных данных. Значение по умолчанию 'strip'.

Таблица 1. Соответствие значений параметра kind и функций seaborn
Значение параметра 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:

row, col: имена переменных из набора data, optional
Категориальные признаки, по которым будет производиться распределение на строки и столбцы.

    Построим диаграммы распределения количества оставленных чаевых от дня недели, с разделением на столбцы:

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: число, optional
Высота диаграммы. Задаётся в дюймах.

aspect: число, optional
Коэффициент, задающий сотношение сторон, ширина диаграммы вычисляется следующим образом: aspect * height.

    Приведём несколько примеров, демонстрирующих работу с 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)

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг