Шестиугольная гистограмма

Beginner

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

Введение

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

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт библиотек

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

  • matplotlib.pyplot для создания графика
  • numpy для генерации случайных данных
import matplotlib.pyplot as plt
import numpy as np

Генерация данных

Мы сгенерируем 100 000 точек данных с использованием numpy.random.standard_normal() и numpy.random.standard_normal(). standard_normal() генерирует случайные числа из стандартного нормального распределения с математическим ожиданием 0 и стандартным отклонением 1.

np.random.seed(19680801)

n = 100_000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
xlim = x.min(), x.max()
ylim = y.min(), y.max()

Создание шестиугольной гистограммы

Мы создадим шестиугольную гистограмму с использованием matplotlib.pyplot.hexbin().

fig, ax = plt.subplots(figsize=(9, 4))

hb = ax.hexbin(x, y, gridsize=50, cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("Hexagon binning")

cb = fig.colorbar(hb, ax=ax, label='counts')

Здесь мы устанавливаем размер сетки равным 50 и карту цветов равной 'inferno'. Мы также добавляем цветовую шкалу, чтобы показать количество точек данных внутри каждого шестиугольника.

Добавление логарифмической шкалы цветов

Мы можем добавить логарифмическую шкалу цветов к шестиугольной гистограмме, установив bins='log' в hexbin().

fig, ax = plt.subplots(figsize=(9, 4))

hb = ax.hexbin(x, y, gridsize=50, bins='log', cmap='inferno')
ax.set(xlim=xlim, ylim=ylim)
ax.set_title("With a log color scale")

cb = fig.colorbar(hb, ax=ax, label='log10(N)')

Отображение графика

Наконец, мы отображаем график с использованием plt.show().

plt.show()

Резюме

В этом уроке мы узнали, как создать шестиугольную гистограмму с использованием matplotlib.pyplot.hexbin() в Python. Мы сгенерировали случайные данные с использованием numpy.random.standard_normal() и numpy.random.standard_normal(), создали шестиугольную гистограмму, добавили логарифмическую шкалу цветов и отобразили график с использованием plt.show().