Ящик с усами (boxplot), также известный как диаграмма размаха, является мощным инструментом визуализации данных, который позволяет быстро оценить распределение выборки, выявить выбросы и сравнить несколько наборов данных. Matplotlib предоставляет гибкие возможности для создания и настройки ящиков с усами, позволяя адаптировать их под конкретные аналитические задачи.
Основы Ящика с Усами в Matplotlib
Что такое ящик с усами и для чего он нужен
Ящик с усами отображает следующие характеристики распределения:
-
Медиана (центральная линия ящика).
-
Первый квартиль (25-й процентиль) и третий квартиль (75-й процентиль), образующие границы ящика.
-
Усы, простирающиеся до минимального и максимального значений в пределах 1.5 межквартильных размахов (IQR) от границ ящика.
-
Выбросы, отображаемые как отдельные точки за пределами усов.
Ящики с усами полезны для:
-
Сравнения распределений разных групп.
-
Выявления асимметрии в данных.
-
Обнаружения выбросов.
Создание базового ящика с усами: первый пример кода
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100, 5) # 5 наборов данных
fig, ax = plt.subplots()
ax.boxplot(data)
ax.set_title('Базовый Ящик с Усами')
plt.show()
Настройка Цвета: Оранжевая Линия и Другие Элементы
Изменение цвета медианы и усов: подробная инструкция
Чтобы изменить цвет медианы и усов в matplotlib boxplot, необходимо получить доступ к элементам графика после его создания и изменить их свойства. Следующий пример демонстрирует, как сделать медиану оранжевой (orange) и настроить цвет усов.
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100) # Один набор данных
fig, ax = plt.subplots()
# Создаем boxplot и получаем словарь с элементами
bplot = ax.boxplot(data, patch_artist=True)
# Меняем цвет медианы на оранжевый
for median in bplot['medians']:
median.set(color='orange', linewidth=2)
# Меняем цвет усов
for whisker in bplot['whiskers']:
whisker.set(color='orange', linewidth=1)
ax.set_title('Ящик с Усами с Оранжевой Медианой и Усами')
plt.show()
Ключевые моменты:
-
patch_artist=Trueпозволяет заливать ящик цветом. -
bplot['medians'],bplot['whiskers']возвращают списки объектов линий медиан и усов. -
set()используется для изменения свойств линий (цвет, толщина и т.д.).Реклама
Настройка цвета выбросов, заливки ящика и других компонентов
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100)
fig, ax = plt.subplots()
bplot = ax.boxplot(data, patch_artist=True)
# Цвет выбросов
for flier in bplot['fliers']:
flier.set(marker='o', color='red', alpha=0.5) #Круглые маркеры, красный цвет, прозрачность
# Заливка ящика цветом
for patch in bplot['boxes']:
patch.set_facecolor('lightblue')
ax.set_title('Кастомизированный Ящик с Усами')
plt.show()
Продвинутая Кастомизация Ящика с Усами
Изменение стиля усов и медианы (толщина, тип линии)
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100)
fig, ax = plt.subplots()
bplot = ax.boxplot(data)
# Стиль медианы
for median in bplot['medians']:
median.set(linestyle='--', linewidth=2, color='green')
# Стиль усов
for whisker in bplot['whiskers']:
whisker.set(linestyle=':', linewidth=1.5, color='purple')
ax.set_title('Ящик с Усами с Измененным Стилем')
plt.show()
Добавление меток и заголовков: улучшаем визуальное восприятие
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(100)
fig, ax = plt.subplots()
ax.boxplot(data, labels=['Данные']) # Метка для ящика
ax.set_title('Ящик с Усами с Метками')
ax.set_ylabel('Значения')
plt.show()
Практические Примеры и Советы
Создание ящика с усами с несколькими группами данных
import matplotlib.pyplot as plt
import numpy as np
data1 = np.random.randn(100)
data2 = np.random.rand(100)
data = [data1, data2]
fig, ax = plt.subplots()
ax.boxplot(data, labels=['Группа 1', 'Группа 2'])
ax.set_title('Сравнение Групп')
plt.show()
Советы по выбору цветов и стилей для ваших графиков
-
Используйте цветовую палитру, соответствующую вашему бренду или тематике данных.
-
Не перегружайте график излишними деталями. Простота улучшает восприятие.
-
Учитывайте цветовосприятие вашей аудитории (например, дальтонизм).
-
Экспериментируйте с разными стилями линий и маркеров для выделения важных элементов.
Заключение и Дальнейшие Шаги
Matplotlib предоставляет широкие возможности для создания информативных и настраиваемых ящиков с усами. Освоив основные приемы настройки цвета, стиля и добавления меток, вы сможете создавать визуализации, эффективно представляющие ваши данные. Для дальнейшего изучения рекомендуется ознакомиться с документацией Matplotlib и попробовать применить полученные знания на практике, используя различные наборы данных и задачи анализа.