В этом уроке мы рассмотрим, как создавать тепловые карты, такие как эта, с помощью Pandas и matplotlib.pyplot
:
Что такое matplotlib.pyplot
?
matplotlib.pyplot
— это подмодуль Matplotlib, популярной библиотеки построения графиков, использующей Python.
Подмодуль pyplot
предназначен для интерактивных графиков и построения графиков.
Создание тепловых карт с помощью функции imshow
:
imshow()
можно использовать для создания тепловых карт. Давайте рассмотрим базовый пример того, как это сделать сейчас:
Во-первых, нам нужно создать данные и метки, которые необходимы для отображения с помощью тепловой карты:
import numpy as np import matplotlib import matplotlib as mpl import matplotlib.pyplot as plt nhl_teams = ["Bruins", "Maple Leafs", "Lightning", "Panthers", "Sabres", "Senators", "Red Wings"] nhl_team_stats = ["2022", "2021", "2020", "2019", "2018", "2017", "2016"] nhl_games_won = np.array([[82, 63, 83, 92, 70, 45, 64], [86, 48, 72, 67, 46, 42, 71], [76, 89, 45, 43, 51, 38, 53], [54, 56, 78, 76, 72, 80, 65], [67, 49, 91, 56, 68, 40, 87], [45, 70, 53, 86, 59, 63, 97], [97, 67, 62, 90, 67, 78, 39]])
Затем мы создадим фигуру и подграфики, необходимые для отображения тепловой карты. Также функция imshow()
будет использоваться для отображения массива nhl_games_won
numpy в виде тепловой карты:
fig, ax = plt.subplots() im = ax.imshow(nhl_games_won)
Далее мы добавляем галочки и метки для нашей тепловой карты:
ax.set_xticks(np.arange(len(nhl_teams)), labels=nhl_teams) ax.set_yticks(np.arange(len(nhl_team_stats)), labels=nhl_team_stats)
Чтобы улучшить читаемость оси x, мы будем вращать метки деления оси x с помощью следующего кода:
plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")
Теперь, чтобы добавить текстовые аннотации, которые показывают значения, содержащиеся в массиве nhl_games_won
numpy, мы используем двойной цикл for и метод ax.text()
:
for i in range(len(nhl_teams)): for j in range(len(nhl_team_stats)): text = ax.text(j, i, nhl_games_won[i, j], ha="center", va="center", color="w")
И, наконец, мы устанавливаем заголовок для тепловой карты, настраиваем отступ между и вокруг подграфика с помощью fig.tight_layout(pad=0.5)
и вызываем plt.show()
для отображения сгенерированного рисунка:
ax.set_title("NHL Games Won By Year") fig.tight_layout(pad=0.5) plt.show()
И вот окончательный результат — тепловая карта, сгенерированная с помощью matplotlib.pyplot:
Вот окончательная версия приведенного выше примера кода на GitHub.
Вот некоторые определения понятий, которые мы рассмотрели выше, на случай, если вы с ними не знакомы:
- Рисунок: рисунок в matplotlib — это основная основа для построения графика данных с помощью matplotlib.
- Подзаговор: диаграмма меньшего размера, вложенная в фигуру matplotlib.
- Отметки: серия значений по осям x или y для отображения координат на графике.
Заключение
Ну вот и все для этого поста! Спасибо, что следили за этой статьей, и если у вас есть какие-либо вопросы или проблемы, не стесняйтесь оставлять комментарии в этом посте, и я свяжусь с вами, когда найду время.
Если вы нашли эту статью полезной, не стесняйтесь поделиться ею и не забудьте подписаться на меня в Twitter и GitHub, связаться со мной в LinkedIn и подписаться на мой канал YouTube.