Поиск по сайту:

Создайте сгруппированную гистограмму в Matplotlib


Что такое matplotlib?

Matplotlib – это популярная библиотека визуализации данных с открытым исходным кодом на языке Python, широко используемая в научных, инженерных областях и областях обработки данных. Matplotlib известен своей гибкостью и широким спектром настраиваемых параметров, что делает его отличным выбором для создания сложных визуализаций для целей исследований или анализа данных. Одним из самых популярных типов визуализации является сгруппированная гистограмма, которая позволяет сравнивать несколько переменных одновременно, показывая различия между группами или подкатегориями. В этом уроке мы покажем вам, как создать сгруппированную гистограмму в Matplotlib, используя реальные примеры.

Каково использование и значение гистограммы в анализе данных?

Гистограмма — это распространенный тип визуализации, используемый при анализе данных для отображения распределения категориальных данных. На гистограмме категории обычно отображаются на оси X, а высота каждого столбца представляет частоту или долю наблюдений в каждой категории.

Значение гистограммы зависит от контекста и цели анализа. Вот несколько примеров того, чем могут быть полезны гистограммы:

Сравнение частот или пропорций – Гистограммы можно использовать для сравнения частот или пропорций наблюдений в разных категориях. Например, столбчатую диаграмму можно использовать для сравнения количества пациентов с различными типами заболеваний в клиническом исследовании или доли клиентов, которые предпочитают продукты разных марок в исследовании рынка. Высота каждого столбца представляет частоту или долю наблюдений в каждой категории, что упрощает их визуальное сравнение.

Отображение тенденций с течением времени или других переменных. Гистограммы также можно использовать для отображения изменений частоты или доли наблюдений с течением времени или других переменных. Например, гистограмму можно использовать для отображения количества клиентов, покупающих разные товары в магазине за разные периоды времени. Используя разные цвета или узоры для каждого периода времени, легко увидеть, как распределение покупок меняется с течением времени.

Идентификация выбросов или необычных наблюдений. Гистограммы также можно использовать для выявления выбросов или необычных наблюдений. Если одна категория имеет гораздо более высокую или меньшую частоту или долю, чем другие категории, это может указывать на необычное наблюдение или ошибку в данных.

С точки зрения статистической значимости гистограммы обычно используются как описательный инструмент, а не как формальный статистический тест. Однако они все равно могут предоставить полезную информацию о распределении категориальных данных и помочь выявить закономерности или тенденции, которые могут представлять интерес. Важно помнить, что гистограммы могут вводить в заблуждение, если они построены неправильно или данные не подходят для такого типа визуализации. Поэтому всегда важно тщательно обдумать цель анализа и соответственно выбрать подходящий инструмент визуализации.

Предварительные условия

Прежде чем мы углубимся в задачу, в вашей системе должно быть установлено несколько вещей:

Список рекомендуемых настроек —

  • pip install pandas, matplotlib

  • Ожидается, что пользователь будет иметь доступ к любой автономной IDE, такой как VS-Code, PyCharm, Atom или Sublime text.

  • Можно использовать даже онлайн-компиляторы Python, такие как Kaggle.com, платформа Google Cloud или любая другая.

  • Обновленная версия Python. На момент написания статьи я использовал версию 3.10.9.

  • Знание использования блокнота Jupyter.

  • Знание и применение виртуальной среды будут полезны, но не обязательны.

  • Также ожидается, что человек будет хорошо разбираться в статистике и математике.

Действия, необходимые для выполнения задачи

Давайте посмотрим примеры кода и шаги —

Пример

import numpy as np
import matplotlib.pyplot as plt

# Define the data for the plot
data = {
   'Group 1': [20, 35, 30, 35, 27],
   'Group 2': [25, 32, 34, 20, 25],
   'Group 3': [12, 20, 22, 30, 15],
}

# Define the x-axis labels and the width of each bar
labels = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
bar_width = 0.2

# Create a numpy array of the x-axis positions for each group of bars
x_pos = np.arange(len(labels))

# Create a figure and axis object
fig, ax = plt.subplots()

# Loop through each group of bars and create a set of bars for each group
for i, (group, values) in enumerate(data.items()):
   # Calculate the x-axis position for the current group of bars
   pos = x_pos + (i * bar_width)
   # Create a set of bars for the current group
   ax.bar(pos, values, width=bar_width, label=group)

# Set the x-axis labels and tick positions
ax.set_xticks(x_pos + ((len(data) - 1) / 2) * bar_width)
ax.set_xticklabels(labels)

# Add a legend to the plot
ax.legend()

# Add axis labels and a title to the plot
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.set_title('Grouped Bar Plot')

# Show the plot
plt.show()

В этом примере у нас есть три группы столбцов (Группа 1, Группа 2 и Группа 3) и пять категорий (Категория 1, Категория 2, Категория 3, Категория 4 и Категория 5). Мы определяем данные для графика с помощью словаря Python, где ключи представляют группы, а значения представляют собой списки значений для каждой категории. Мы также определяем ширину каждого столбца и метки оси X.

Затем мы создаем массив позиций по оси X для каждой группы столбцов, используя функцию np.arange(). Мы создаем объект фигуры и оси, используя функцию plt.subplots(). Затем мы просматриваем каждую группу баров и создаем набор баров для каждой группы с помощью функции ax.bar(). Мы устанавливаем метки оси X и позиции делений с помощью функций ax.set_xticks() и ax.set_xticklabels() соответственно. Мы добавляем легенду к графику с помощью функции ax.legend(). Наконец, мы добавляем метки осей и заголовок к графику, используя функции ax.set_xlabel(), ax.set_ylabel() и ax.set_title(). Мы показываем график с помощью функции plt.show().

Этот код должен создать сгруппированную гистограмму с тремя группами столбцов, пятью категориями и соответствующими метками, легендами и заголовками осей. Вы можете изменить данные, метки и другие параметры в соответствии с вашими конкретными потребностями.

Выход

На этом рисунке показаны различные сгруппированные гистограммы с использованием matplotlib.

Заключение

В этом уроке мы шаг за шагом показали вам, как создавать сгруппированные гистограммы в Matplotlib, на реальных примерах. Мы рассмотрели все основные аспекты сгруппированных линейчатых диаграмм, включая базовую структуру, горизонтальные сгруппированные линейчатые диаграммы, сгруппированные столбчатые диаграммы и сгруппированные линейчатые диаграммы с метками и легендами. Следуя инструкциям, изложенным в этом руководстве, вы сможете создавать свои собственные сгруппированные гистограммы для целей исследования или анализа данных.

Статьи по данной тематике: