Публичный аккаунт WeChat: «Python Reading Finance»
Если у вас есть какие-либо вопросы или предложения, пожалуйста, оставьте сообщение в публичном аккаунте
Seaborn — это библиотека визуализации Python, основанная на matplotlib. Он предоставляет расширенный интерфейс для рисования привлекательных статистических графиков. Seaborn на самом деле инкапсулирует более продвинутый API на основе matplotlib, что упрощает рисование и делает ваши графики более точными без большого количества настроек.
Примечание. Весь код реализован в блокноте IPython.
тепловая карта
Тепловая карта часто используется для отображения матрицы коэффициентов корреляции набора переменных на практике, а также более широко используется для отображения распределения данных таблицы непредвиденных обстоятельств.Благодаря тепловой карте мы можем интуитивно почувствовать разницу в числовых значениях. ценность. API тепловой карты выглядит так:
Далее будет продемонстрировано использование этих основных параметров, первое, что нужно сделать, это сначала импортировать соответствующие пакеты.
import seaborn as sns
%matplotlib inline
sns.set(font_scale=1.5)
Набор данных, используемый в этой демонстрации, встроен в Seaborn.набор данных о рейсах:
#导入数据集后按年月两个维度进行数据透视
data=sns.load_dataset("flights")\
.pivot("month","year","passengers")
data.head()
Как показано на рисунке выше, данные в фрейме данных представляют количество пассажиров, летающих в месяц с 1949 по 1960 год, а затем дебютирует тепловая карта!
sns.set_context({"figure.figsize":(8,8)})
sns.heatmap(data=data,square=True)
#可以看到热力图主要展示的是二维数据的数据关系
#不同大小的值对应不同的颜色深浅
В правой части тепловой карты находится цветовая полоса, которая представляет собой сопоставление значений с цветами.Значения от меньшего к большему соответствуют цветам от темного к светлому. Из приведенной выше тепловой карты мы можем получить два слоя информации: один о том, что количество пассажиров в самолете постепенно увеличивается с течением времени, а другой — о том, что пиковый сезон полетов приходится на июль и август. Конкретные параметры показаны ниже.
vmax
: Установите максимальное значение цветовой полосыvmin
: установите минимальное значение цветовой полосы
sns.heatmap(data=data,vmin=200,vmax=500)
Видно, что максимальное и минимальное значения цветовой полосы справа изменились, и отношение отображения цветов на тепловой карте также будет соответствующим образом скорректировано Сравнение этого изображения с изображением выше ясно с первого взгляда.
cmap
: установка цветовой системы цветовой полосы
sns.heatmap(data=data,cmap="RdBu_r")
Вроде лучше выглядит?
center
: Установите разделительную линию цветовой полосы.
sns.heatmap(data=data,cmap="RdBu_r",center=300)
Внимательные друзья могут заметить, что разделительная линия между двумя уровнями цвета на цветовой полосе стала равной 300.
annot
: отображать ли числовые комментарии
sns.heatmap(data=data,annot=True,cmap="RdBu_r")
что случилось? Это искажено? На самом деле аннотация значения отображается по умолчаниюнаучная нотацияЗначение , мы должны отформатировать значение, которое использует следующие параметры.
fmt
: Аббревиатура формата, установите формат значения
sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r")
#foramt为int类型
linewidths
: Управляет интервалом между каждым маленьким квадратом
sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,cmap="RdBu_r")
#可以看到每个小方格之产生了间隙
linecolor
: управляет цветом разделительной линии
sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,linecolor="grey",cmap="RdBu_r")
#原来的白色间隙变成了灰色间隙
cbar_kws
: О настройках цветовой полосы
sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r",
cbar_kws={"orientation":"horizontal"})
#横向显示颜色帮
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")
Если вы мало знаете о приведенном выше потоке кода, вы можете распечатать маску, чтобы увидеть
Ссылаясь на маску и изображение, нарисованное выше, должно быть легко понять: часть 1 в маске — это та часть, которая должна быть покрыта. Это конец демо, если вы хотите узнать больше, вы можете самостоятельно проверить официальную документацию!
Отсканируйте код, чтобы подписаться на официальный аккаунт"Питон Чтение Финансов", получите галантерею в первый раз! !