Визуализация Python | Seaborn 5-минутное введение (6) - тепловая карта тепловая карта

визуализация данных
Визуализация Python | Seaborn 5-минутное введение (6) - тепловая карта тепловая карта

Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте

Seaborn — это библиотека визуализации Python, основанная на matplotlib. Он предоставляет расширенный интерфейс для рисования привлекательных статистических графиков. Seaborn на самом деле инкапсулирует более продвинутый API на основе matplotlib, что упрощает рисование и делает ваши графики более точными без большого количества настроек.

image

Примечание. Весь код реализован в блокноте IPython.

тепловая карта

Тепловая карта часто используется для отображения матрицы коэффициентов корреляции набора переменных на практике, а также более широко используется для отображения распределения данных таблицы непредвиденных обстоятельств.Благодаря тепловой карте мы можем интуитивно почувствовать разницу в числовых значениях. ценность. API тепловой карты выглядит так:

image

Далее будет продемонстрировано использование этих основных параметров, первое, что нужно сделать, это сначала импортировать соответствующие пакеты.

import seaborn as sns
%matplotlib inline
sns.set(font_scale=1.5)

Набор данных, используемый в этой демонстрации, встроен в Seaborn.набор данных о рейсах:

#导入数据集后按年月两个维度进行数据透视
data=sns.load_dataset("flights")\
        .pivot("month","year","passengers") 
data.head() 

image

Как показано на рисунке выше, данные в фрейме данных представляют количество пассажиров, летающих в месяц с 1949 по 1960 год, а затем дебютирует тепловая карта!

sns.set_context({"figure.figsize":(8,8)})
sns.heatmap(data=data,square=True) 
#可以看到热力图主要展示的是二维数据的数据关系
#不同大小的值对应不同的颜色深浅

image

В правой части тепловой карты находится цветовая полоса, которая представляет собой сопоставление значений с цветами.Значения от меньшего к большему соответствуют цветам от темного к светлому. Из приведенной выше тепловой карты мы можем получить два слоя информации: один о том, что количество пассажиров в самолете постепенно увеличивается с течением времени, а другой — о том, что пиковый сезон полетов приходится на июль и август. Конкретные параметры показаны ниже.

vmax: Установите максимальное значение цветовой полосыvmin: установите минимальное значение цветовой полосы

sns.heatmap(data=data,vmin=200,vmax=500)

image

Видно, что максимальное и минимальное значения цветовой полосы справа изменились, и отношение отображения цветов на тепловой карте также будет соответствующим образом скорректировано Сравнение этого изображения с изображением выше ясно с первого взгляда.

cmap: установка цветовой системы цветовой полосы

sns.heatmap(data=data,cmap="RdBu_r")

image

Вроде лучше выглядит?

center: Установите разделительную линию цветовой полосы.

sns.heatmap(data=data,cmap="RdBu_r",center=300)

image

Внимательные друзья могут заметить, что разделительная линия между двумя уровнями цвета на цветовой полосе стала равной 300.

annot: отображать ли числовые комментарии

sns.heatmap(data=data,annot=True,cmap="RdBu_r")

image

что случилось? Это искажено? На самом деле аннотация значения отображается по умолчаниюнаучная нотацияЗначение , мы должны отформатировать значение, которое использует следующие параметры.

fmt: Аббревиатура формата, установите формат значения

sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r")
#foramt为int类型

image

linewidths: Управляет интервалом между каждым маленьким квадратом

sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,cmap="RdBu_r") 
#可以看到每个小方格之产生了间隙

image

linecolor: управляет цветом разделительной линии

sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,linecolor="grey",cmap="RdBu_r")
#原来的白色间隙变成了灰色间隙

image

cbar_kws: О настройках цветовой полосы

sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r",
                      cbar_kws={"orientation":"horizontal"}) 
#横向显示颜色帮

image

mask: передать логическую матрицу. Если в матрице установлено значение True, данные в соответствующей позиции тепловой карты будут замаскированы (обычно используется для построения матрицы коэффициентов корреляции).

import numpy as np 
#随机生成一个200行10列的数据集 
data_new = np.random.randn(200,10) 
#求出这个数据集的相关系数矩阵 corr = np.corrcoef(data_new,rowvar=False) 
#以corr的形状生成一个全为0的矩阵 
mask = np.zeros_like(corr)
#将mask的对角线及以上设置为True
#这部分就是对应要被遮掉的部分mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):
    sns.heatmap(corr, mask=mask, vmax=0.3, annot=True,cmap="RdBu_r")

image

Если вы мало знаете о приведенном выше потоке кода, вы можете распечатать маску, чтобы увидеть

image

Ссылаясь на маску и изображение, нарисованное выше, должно быть легко понять: часть 1 в маске — это та часть, которая должна быть покрыта. Это конец демо, если вы хотите узнать больше, вы можете самостоятельно проверить официальную документацию!

Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз! !

底部二维码.png