Как построить гистограмму в Python с Matplotlib: Полное руководство для начинающих

Гистограмма – это мощный инструмент визуализации данных, позволяющий оценить распределение числовых значений в наборе данных. С её помощью легко выявить частоту появления значений в определенных интервалах, что полезно при анализе данных, выявлении трендов и принятии решений. Matplotlib, ведущая библиотека для построения графиков в Python, предоставляет гибкие возможности для создания и настройки гистограмм. В этом руководстве мы рассмотрим все этапы построения гистограмм с использованием matplotlib.pyplot.hist, начиная с установки библиотеки и заканчивая продвинутыми техниками визуализации.

Установка и Импорт Matplotlib: Начало работы

Установка Matplotlib через pip

Прежде чем начать, необходимо установить Matplotlib. Это можно сделать с помощью pip, пакетного менеджера Python:

pip install matplotlib

Импорт необходимых модулей: pyplot

После установки импортируйте модуль pyplot, который является основным интерфейсом для создания графиков в Matplotlib:

import matplotlib.pyplot as plt
import numpy as np # для создания примера данных

Создание базовой гистограммы: Первые шаги

Основы функции hist(): синтаксис и параметры

Функция hist() из модуля matplotlib.pyplot является ключевой для построения гистограмм. Её базовый синтаксис выглядит следующим образом:

plt.hist(x, bins=None, range=None, density=False, color=None, alpha=None)
  • x: Входные данные (массив или последовательность чисел).

  • bins: Количество интервалов (столбцов) гистограммы. Может быть целым числом или последовательностью границ интервалов.

  • range: Диапазон значений, для которых строится гистограмма. Игнорируются значения вне этого диапазона.

  • density: Если True, гистограмма нормализуется, чтобы площадь под ней равнялась 1.

  • color: Цвет столбцов гистограммы.

  • alpha: Прозрачность столбцов (значение от 0 до 1).

Построение простой гистограммы: пример кода и объяснение

Создадим простой пример гистограммы, используя случайные данные из нормального распределения:

import matplotlib.pyplot as plt
import numpy as np

# Генерируем 1000 случайных чисел из нормального распределения
data = np.random.randn(1000)

# Строим гистограмму
plt.hist(data, bins=30)

# Отображаем гистограмму
plt.show()

Этот код генерирует 1000 случайных чисел, а затем строит гистограмму с 30 интервалами, отображая частоту попадания значений в каждый интервал.

Настройка внешнего вида гистограммы: Улучшение визуализации

Добавление заголовка, меток осей и легенды

Чтобы сделать гистограмму более информативной, добавим заголовок и метки осей:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

plt.hist(data, bins=30)

plt.title('Распределение случайных чисел')
plt.xlabel('Значение')
plt.ylabel('Частота')

plt.show()
Реклама

Изменение цвета, границ и других визуальных атрибутов

Изменим цвет и добавим границы для улучшения внешнего вида гистограммы:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

plt.hist(data, bins=30, color='skyblue', edgecolor='black')

plt.title('Распределение случайных чисел')
plt.xlabel('Значение')
plt.ylabel('Частота')

plt.show()

Продвинутые техники и примеры использования гистограмм

Построение нескольких гистограмм на одном графике

Для сравнения распределений нескольких наборов данных можно построить несколько гистограмм на одном графике:

import matplotlib.pyplot as plt
import numpy as np

data1 = np.random.normal(0, 1, 1000)  # Нормальное распределение
data2 = np.random.normal(3, 1.5, 1000) # Смещенное нормальное распределение

plt.hist(data1, bins=30, alpha=0.5, label='Данные 1')
plt.hist(data2, bins=30, alpha=0.5, label='Данные 2')

plt.title('Сравнение распределений')
plt.xlabel('Значение')
plt.ylabel('Частота')
plt.legend(loc='upper right')

plt.show()

В этом примере alpha задает прозрачность, чтобы гистограммы не перекрывали друг друга. label определяет метку для легенды, которая отображается с помощью plt.legend().

Сохранение гистограммы в файл и другие полезные советы

Чтобы сохранить гистограмму в файл, используйте функцию plt.savefig():

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)

plt.hist(data, bins=30)

plt.title('Распределение случайных чисел')
plt.xlabel('Значение')
plt.ylabel('Частота')

plt.savefig('histogram.png') # Сохраняем в формате PNG

Другие полезные советы:

  • Используйте density=True для нормализации гистограммы и представления частоты в виде плотности вероятности.

  • Экспериментируйте с количеством интервалов (bins) для наилучшего отображения распределения.

  • Интегрируйте pandas гистограмма и seaborn гистограмма для удобства работы с данными и стилизации графиков.

  • Для больших наборов данных оптимизируйте код, используя векторизованные операции NumPy вместо циклов.

Заключение и дальнейшие шаги

Теперь вы знаете, как построить и настроить гистограммы в Python с использованием Matplotlib. Гистограммы – это незаменимый инструмент для визуализации и анализа данных. Используйте полученные знания для исследования ваших данных и принятия обоснованных решений. Для дальнейшего изучения рассмотрите возможности интеграции Matplotlib с другими библиотеками, такими как pandas и seaborn, для более удобной работы с данными и создания сложных визуализаций. Не забывайте экспериментировать с различными параметрами и типами графиков, чтобы найти оптимальный способ представления ваших данных. ✨


Добавить комментарий