Введение
В этом руководстве мы узнаем, как настраивать диаграммы "ящик с усами" в Matplotlib. Диаграммы "ящик с усами" - популярный способ визуализации распределения набора данных. Они также известны как диаграммы "ящик и усики" и показывают медиану, квартили и выбросы данных. Мы рассмотрим различные примеры, чтобы научиться настраивать диаграммы "ящик с усами" с использованием Matplotlib.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
Начнем с импорта необходимых библиотек, которые это Matplotlib и NumPy. Также установим случайный сид для NumPy, чтобы убедиться, что наши результаты воспроизводимы.
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
Генерируем данные
Мы сгенерируем некоторые случайные данные для использования в наших примерах. Мы будем использовать функцию NumPy random.lognormal(), чтобы сгенерировать данные, распределенные по логнормальному закону, с математическим ожиданием 1,5 и стандартным отклонением 1,75. Мы сгенерируем 37 выборок по 4 переменным и сохраним их в переменной data. Также создадим список меток для каждой переменной.
data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')
Стандартная диаграмма "ящик с усами"
Начнем с создания стандартной диаграммы "ящик с усами", чтобы визуализировать данные. Используем функцию Matplotlib boxplot() и передадим в нее данные и метки в качестве аргументов. Также зададим заголовок графика с помощью функции set_title().
fig, ax = plt.subplots()
ax.boxplot(data, labels=labels)
ax.set_title('Default Box Plot')
plt.show()
Удаление отдельных компонентов
Мы можем удалить отдельные компоненты диаграммы "ящик с усами", используя различные ключевые аргументы, доступные в функции boxplot(). Например, мы можем удалить средние значения, установив showmeans в False. Также мы можем удалить коробку и усики, установив showbox и showcaps в False соответственно.
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')
axs[0, 1].boxplot(data, labels=labels, showmeans=False)
axs[0, 1].set_title('No Means')
axs[1, 0].boxplot(data, labels=labels, showbox=False, showcaps=False)
axs[1, 0].set_title('No Box or Whiskers')
axs[1, 1].boxplot(data, labels=labels, showfliers=False)
axs[1, 1].set_title('No Outliers')
plt.show()
Настройка стилей диаграммы "ящик с усами"
Мы также можем настроить стили диаграммы "ящик с усами", используя различные ключевые аргументы, доступные в функции boxplot(). Например, мы можем изменить цвет и стиль линии коробки, установив boxprops. Также мы можем изменить стиль медианы, среднего значения и линии среднего значения, установив medianprops, meanprops и meanlineprops соответственно.
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')
boxprops = dict(linestyle='--', linewidth=2, color='red')
axs[0, 1].boxplot(data, labels=labels, boxprops=boxprops)
axs[0, 1].set_title('Custom Box')
medianprops = dict(linestyle='-', linewidth=2, color='blue')
meanprops = dict(marker='D', markeredgecolor='black', markerfacecolor='green')
meanlineprops = dict(linestyle='--', linewidth=2, color='red')
axs[1, 0].boxplot(data, labels=labels, medianprops=medianprops, meanprops=meanprops, meanline=True, meanlineprops=meanlineprops)
axs[1, 0].set_title('Custom Median, Mean, and Mean Line')
flierprops = dict(marker='o', markerfacecolor='red', markersize=8, markeredgecolor='none')
axs[1, 1].boxplot(data, labels=labels, flierprops=flierprops)
axs[1, 1].set_title('Custom Outliers')
plt.show()
Обзор
Диаграммы "ящик с усами" - прекрасный способ визуализировать распределение набора данных. Matplotlib предоставляет множество вариантов настройки для диаграмм "ящик с усами", таких как удаление отдельных компонентов и настройка стилей компонентов. Используя эти параметры, мы можем создать диаграммы "ящик с усами", которые эффективно передают информацию, которую мы хотим передать.