Настройка диаграмм "ящик с усами"

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом руководстве мы узнаем, как настраивать диаграммы "ящик с усами" в 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 предоставляет множество вариантов настройки для диаграмм "ящик с усами", таких как удаление отдельных компонентов и настройка стилей компонентов. Используя эти параметры, мы можем создать диаграммы "ящик с усами", которые эффективно передают информацию, которую мы хотим передать.