Data Visualization

Мастерство работы с 2D тепловыми картами в Matplotlib и Seaborn

Spread the love

Тепловые карты незаменимы для визуализации данных в двумерной сетке, где интенсивность цвета представляет величину каждого значения. Matplotlib, мощная библиотека визуализации данных Python, предлагает несколько способов создания убедительных тепловых карт. В этой статье рассматриваются три популярных метода: использование imshow(), использование библиотеки Seaborn и использование pcolormesh(). Мы рассмотрим каждый метод с понятными примерами и объяснениями.

Содержание

imshow(): Простой подход

Функция imshow() из Matplotlib предоставляет простой способ генерации тепловых карт. Она принимает в качестве входных данных 2D массив, сопоставляя значения с цветами с помощью выбранной цветовой карты.


import matplotlib.pyplot as plt
import numpy as np

# Пример данных
data = np.random.rand(10, 10)

# Создание тепловой карты
plt.imshow(data, cmap='viridis')

# Добавление цветовой шкалы
plt.colorbar(label='Значение')

# Добавление подписей и заголовка
plt.xlabel('Ось X')
plt.ylabel('Ось Y')
plt.title('Двумерная тепловая карта с помощью imshow()')

# Показать график
plt.show()

Этот код создает тепловую карту, где интенсивность цвета ячейки отражает соответствующее значение в массиве data. Аргумент cmap выбирает цветовую карту (например, ‘plasma’, ‘magma’, ‘inferno’, ‘cividis’). colorbar() добавляет легенду, сопоставляющую цвета со значениями.

heatmap() из Seaborn: Расширенная функциональность

Seaborn, основанный на Matplotlib, предлагает более высокоуровневый интерфейс для создания статистически содержательных и визуально привлекательных графиков, включая тепловые карты. Его функция heatmap() упрощает процесс и добавляет полезные функции.


import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# Пример данных
data = np.random.rand(10, 10)

# Создание тепловой карты
sns.heatmap(data, annot=True, cmap='coolwarm', fmt=".2f")

# Добавление заголовка
plt.title('Двумерная тепловая карта с помощью Seaborn')

# Показать график
plt.show()

Этот пример Seaborn генерирует похожую тепловую карту, но с annot=True, отображающим числовые значения внутри каждой ячейки, что повышает читаемость. fmt управляет форматированием аннотаций.

pcolormesh(): Для нерегулярных данных и точного контроля

pcolormesh() из Matplotlib идеально подходит для тепловых карт с нерегулярно расположенными данными или когда требуется точный контроль над границами ячеек.


import matplotlib.pyplot as plt
import numpy as np

# Пример данных (использование meshgrid для демонстрации)
x = np.arange(0, 10, 1)
y = np.arange(0, 10, 1)
X, Y = np.meshgrid(x, y)
data = np.sin(X) * np.cos(Y)

# Создание тепловой карты
plt.pcolormesh(X, Y, data, cmap='RdBu')

# Добавление цветовой шкалы
plt.colorbar(label='Значение')

# Добавление подписей и заголовка
plt.xlabel('Ось X')
plt.ylabel('Ось Y')
plt.title('Двумерная тепловая карта с помощью pcolormesh()')

# Показать график
plt.show()

В этом примере используется meshgrid для создания координатных сеток x и y, определяющих границы ячеек для pcolormesh(). Это предлагает большую гибкость, чем imshow(). Цветовая карта RdBu является расходящейся схемой, подходящей для данных как с положительными, так и с отрицательными значениями. Не забудьте установить необходимые библиотеки, используя pip install matplotlib seaborn.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *