Как легко создавать тепловые карты в Python


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

import numpy as np
import pandas as pd 
import seaborn as sns

#create a dataset
np.random.seed(0)
data = {'day': np.tile(['Mon', 'Tue', 'Wed', 'Thur', 'Fri'], 5),
 'week': np.repeat([1, 2, 3, 4, 5], 5),
 'sales': np.random.randint(0, 50, size=25)
 }

df = pd.DataFrame(data,columns=['day','week','sales'])
df = df.pivot('day', 'week', 'sales')

view first ten rows of dataset
df[:10]

week 1 2 3 4 5
day 
Fri 3 36 12 46 13
Mon 44 39 23 1 24
Thur 3 21 24 23 25
Tue 47 9 6 38 17
Wed 0 19 24 39 37

Создать базовую тепловую карту

Мы можем создать базовую тепловую карту, используя функцию s ns.heatmap() :

sns.heatmap(df) 

Цветовая полоса справа отображает легенду о том, какие значения представляют различные цвета.

Добавить линии на тепловую карту

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

sns.heatmap(df, linewidths=.5) 

Добавьте аннотации к тепловой карте

Вы также можете добавить аннотации к тепловой карте, используя аргумент annot=True :

sns.heatmap(df, linewidths=.5, annot=True) 

Скрыть Colorbar из тепловой карты

Вы также можете полностью скрыть цветовую полосу, используя параметр cbar=False :

sns.heatmap(df, linewidths=.5, annot=True, cbar=False) 

Изменить цветовую тему тепловой карты

Вы также можете изменить цветовую тему, используя аргумент cmap.Например, вы можете установить цвета в диапазоне от желтого до зеленого и синего:

sns.heatmap(df, cmap='YlGnBu')

Или вы можете иметь диапазон цветов от красного до синего:

sns.heatmap(df, cmap='RdBu') 

Полный список цветовых карт см. в документации по matplotlib .