Ящик с усами, также известный как box plot, представляет собой тип графической визуализации, которая используется в статистике для отображения распределения набора данных. Этот вид визуализации особенно полезен для выявления выбросов и оценки характеристик распределения, таких как медиана и межквартильный размах.
В этой статье мы рассмотрим, как построить ящик с усами в Python, используя библиотеки Matplotlib и Seaborn.
Что такое ящик с усами?
Ящик с усами состоит из нескольких ключевых компонентов:
- Медиана: Среднее значение набора данных.
- Первый и третий квартиль (Q1 и Q3): Значения, ниже которых попадает 25% и 75% данных соответственно.
- Межквартильный размах (IQR): Разница между Q1 и Q3. Усы тянутся до минимального и максимального значения внутри 1.5 * IQR от Q1 и Q3.
- Выбросы: Точки данных, которые находятся за пределами усов.
Этот визуальный метод помогает легко оценивать симметрию, степень разброса и выявлять экстремальные значения в наборе данных.
Зачем нужен ящик с усами в анализе данных?
Ящики с усами имеют ряд применений в анализе данных:
- Выявление выбросов: Легко обнаруживаются данные, выбивающиеся из общей картины.
- Анализ распределения: Помогает понять, как распределены данные, есть ли асимметрия.
- Сравнение групп: Удобен для сравнения распределений нескольких групп данных.
Установка необходимых библиотек
Для построения ящиков с усами в Python, вам понадобятся следующие библиотеки:
pip install matplotlib seaborn
Команда установит Matplotlib и Seaborn — мощные инструменты для визуализации данных. Matplotlib предоставляет базовые возможности для построения графиков, а Seaborn упрощает создание сложных визуализаций.
Подготовка данных для графика
Для демонстрации мы создадим искусственный набор данных, используя numpy:
import numpy as np
# Создание случайного набора данных с нормальным распределением
data = np.random.normal(loc=0, scale=1, size=100)
В этом примере мы генерируем 100 случайных чисел с нормальным распределением (среднее значение 0 и стандартное отклонение 1).
Построение ящика с усами с использованием Matplotlib
Теперь, когда мы подготовили данные, давайте создадим график с усами с использованием Matplotlib:
import matplotlib.pyplot as plt
# Построение ящика с усами
plt.boxplot(data)
plt.title('Ящик с усами')
plt.xlabel('Группа')
plt.ylabel('Значение')
plt.show()
Этот код создаст простой ящик с усами. Мы добавили заголовок и метки осей для улучшения читабельности.

Построение ящика с усами с использованием Seaborn
Seaborn предлагает более продвинутые возможности для визуализации данных. Рассмотрим, как построить тот же график, но с использованием Seaborn:
import seaborn as sns
# Построение ящика с усами с использованием Seaborn
sns.boxplot(data=data)
plt.title('Ящик с усами с использованием Seaborn')
plt.show()
Преимущество Seaborn в том, что он добавляет стилизацию по умолчанию и упрощает создание более сложных графиков.

Настройка графиков: стили и параметры
Seaborn позволяет легко настраивать внешний вид графиков. Рассмотрим пример настройки цвета и ширины ящика с усами:
# Пример настройки стиля ящика с усами в Seaborn
sns.boxplot(data=data, color='cyan', width=0.5)
plt.title('Настроенный ящик с усами')
plt.show()
В этом примере мы изменили цвет графика на ‘cyan’ и ширину ящика на 0.5.

Сравнение ящиков с усами для нескольких групп
Для сравнения нескольких групп данных на одном графике можно использовать следующий подход:
# Создание второго набора данных
data2 = np.random.normal(loc=1, scale=1, size=100)
# Построение многократного ящика с усами для сравнения двух групп
sns.boxplot(data=[data, data2])
plt.title('Сравнение групп')
plt.show()
Этот код создаст график, который позволяет сравнить распределение двух различных наборов данных.
Заключение
Ящики с усами являются мощным инструментом для анализа данных, позволяя легко обнаруживать выбросы и оценивать распределение. Их использование особенно полезно при сравнении нескольких групп данных. С Matplotlib и Seaborn можно быстро и легко создавать такие графики, добавляя все необходимые стили и параметры.