Maison  >  Article  >  développement back-end  >  Comment implémenter une carte thermique visuelle en python

Comment implémenter une carte thermique visuelle en python

零到壹度
零到壹度original
2018-04-04 14:22:2650097parcourir


Cet article présente principalement comment implémenter une carte thermique visuelle en python. L'éditeur pense que c'est plutôt bien. Maintenant, je vais le partager avec vous et le donner comme référence. Suivons l'éditeur pour y jeter un œil

Carte thermique

1. Utilisez la carte thermique pour voir la similitude de plusieurs fonctionnalités dans le tableau de données. Reportez-vous aux paramètres et à l'adresse officiels de l'API :

seaborn.heatmap(data, vmin=None, vmax=None,cmap=None, center=None, robuste=False, annot=None , fmt ='.2g', annot_kws=Aucun,linewidths=0, linecolor='white', cbar=True, cbar_kws=Aucun, cbar_ax=Aucun,square=False, xticklabels='auto', yticklabels='auto', mask= Aucun, ax=None,**kwargs)

(1) Paramètres de données d'entrée de la carte thermique :

données : ensemble de données matricielles , oui, c'est un tableau de numpy, ou cela peut être un DataFrame de pandas. S'il s'agit d'un DataFrame, les informations d'index/colonne de df correspondront respectivement aux colonnes et aux lignes de la carte thermique, c'est-à-dire que pt.index est l'étiquette de ligne de la carte thermique et pt.columns est l'étiquette de colonne du carte thermique

(2) Paramètres de couleur du bloc de matrice de carte thermique :

vmax, vmin : respectivement la plage maximale et minimale de valeurs de couleur de la carte thermique. La valeur par défaut est déterminée en fonction de la valeur dans la table de données
cmap : Mappage des nombres à l'espace colorimétrique, la valeur est le nom de la carte de couleurs ou l'objet de couleur dans le package matplotlib, ou une liste représentant les couleurs ; modifiez la valeur par défaut du paramètre : définissez en fonction du paramètre central
center : lorsqu'il existe des différences dans les valeurs du tableau de données, définissez la valeur d'alignement du centre des couleurs de la carte thermique en définissant la valeur centrale, vous pouvez ajuster manuellement la profondeur globale de la couleur de l'image générée ; lors de la définition des données centrales, en cas de débordement de données. Les paramètres vmax et vmin changeront automatiquement
robust : la valeur par défaut est False ; s'il est faux et que les valeurs de vmin et vmax ne sont pas définies, la plage de cartographie des couleurs de la carte thermique est basée sur le paramètre Quantile robuste, au lieu du paramètre de valeur extrême

(3) Matrice de carte thermique paramètres d'annotation du bloc :

annot (abréviation d'annoter) : pris par défaut Valeur False si c'est True, écrivez les données dans chaque carré de la heat map ; écrire les données de position correspondantes de la matrice dans chaque carré de la carte thermique
fmt : format de chaîne Code, format de données pour identifier les nombres sur la matrice, comme conserver plusieurs chiffres après la virgule décimale
annot_kws : La valeur par défaut est False ; si elle est True, définissez la taille, la couleur et la police des nombres sur la matrice de carte thermique, paramètres de police du package matplotlib sous la classe de texte :

(4) Paramètres d'espacement et de ligne d'espacement entre les blocs matriciels de la carte thermique :

largeurs de ligne : Définir la carte thermique " La taille de l'écart entre " les patchs matriciels représentant les relations de fonctionnalités par paires "
linecolor : La couleur de la ligne qui divise chaque patch matriciel sur la carte thermique. La valeur par défaut est « blanc »

(5) Paramètres de la barre d'échelle de couleur de la carte thermique :

cbar : s'il faut dessiner une barre d'échelle de couleurs sur le côté de la carte thermique, la valeur par défaut est True
cbar_kws : lors du dessin de barres d'échelle de couleurs sur le côté de la carte thermique, les paramètres de police pertinents, la valeur par défaut est Aucun
cbar_ax : lors du dessin des barres d'échelle de couleur sur le côté de la carte thermique, les paramètres de position de la barre d'échelle, la valeur par défaut is None

(6) square : Définissez la forme de la matrice de la carte thermique, la valeur par défaut est False

xticklabels, yticklabels:xticklabels contrôle chaque colonne Sortie des noms d'étiquettes ; yticklabels contrôle la sortie des noms d'étiquettes pour chaque ligne. La valeur par défaut est automatique. Si True, le nom de colonne du DataFrame est utilisé comme nom d’étiquette. Si False, les noms d’étiquettes de ligne ne sont pas ajoutés. S'il s'agit d'une liste, le nom de l'étiquette est remplacé par le contenu indiqué dans la liste. S'il s'agit d'un nombre entier K, étiquetez toutes les K étiquettes sur le graphique. S'il est automatique, l'espacement des étiquettes sera automatiquement sélectionné et la partie (ou la totalité) des noms d'étiquettes qui ne se chevauchent pas sera affichée
masque : contrôle si une certaine matrice. Le bloc s’affiche. La valeur par défaut est Aucune. S'il s'agit d'un DataFrame booléen, couvrez la position True dans le DataFrame avec un
ax blanc : définissez l'axe de coordonnées du dessin. Généralement, lorsque vous dessinez plusieurs sous-graphiques, vous devez modifier les coordonnées des différents. sous-graphes. Valeurs
**kwargs : Tous les autres arguments de mots-clés sont transmis à ax.pcolormesh

Paramètres de couleur du bloc de matrice Heatmap

#cmap(颜色)

import matplotlib.pyplot as plt
% matplotlib inline

f, (ax1,ax2) = plt.subplots(figsize = (6,4),nrows=2)

# cmap用cubehelix map颜色
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(pt, linewidths = 0.05, ax = ax1, vmax=900, vmin=0, cmap=cmap)
ax1.set_title('cubehelix map')
ax1.set_xlabel('')
ax1.set_xticklabels([]) #设置x轴图例为空值
ax1.set_ylabel('kind')

# cmap用matplotlib colormap
sns.heatmap(pt, linewidths = 0.05, ax = ax2, vmax=900, vmin=0, cmap='rainbow') 
# rainbow为 matplotlib 的colormap名称
ax2.set_title('matplotlib colormap')
ax2.set_xlabel('region')
ax2.set_ylabel('kind')

Comment implémenter une carte thermique visuelle en python

#center的用法(颜色)f, (ax1,ax2) = plt.subplots(figsize = (6, 4),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None )
ax1.set_title('center=None')
ax1.set_xlabel('')
ax1.set_xticklabels([]) #设置x轴图例为空值ax1.set_ylabel('kind')# 当center设置小于数据的均值时,生成的图片颜色要向0值代表的颜色一段偏移sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=200)   
ax2.set_title('center=3000')
ax2.set_xlabel('region')
ax2.set_ylabel('kind')

Comment implémenter une carte thermique visuelle en python

#robust的用法(颜色)f, (ax1,ax2) = plt.subplots(figsize = (6,4),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None, robust=False )
ax1.set_title('robust=False')
ax1.set_xlabel('')
ax1.set_xticklabels([]) #设置x轴图例为空值ax1.set_ylabel('kind')

sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=None, robust=True ) 
ax2.set_title('robust=True')
ax2.set_xlabel('region')
ax2.set_ylabel('kind')

Comment implémenter une carte thermique visuelle en python

Paramètres d'annotation de bloc de matrice de carte thermique

#annot(矩阵上数字),annot_kws(矩阵上数字的大小颜色字体)matplotlib包text类下的字体设置import numpy as np
np.random.seed(20180316)
x = np.random.randn(4, 4)

f, (ax1, ax2) = plt.subplots(figsize=(6,6),nrows=2)

sns.heatmap(x, annot=True, ax=ax1)

sns.heatmap(x, annot=True, ax=ax2, annot_kws={'size':9,'weight':'bold', 'color':'blue'})# Keyword arguments for ax.text when annot is True.  http://stackoverflow.com/questions/35024475/seaborn-heatmap-key-words

Comment implémenter une carte thermique visuelle en python

#fmt(字符串格式代码,矩阵上标识数字的数据格式,比如保留小数点后几位数字)import numpy as np
np.random.seed(0)
x = np.random.randn(4,4)

f, (ax1, ax2) = plt.subplots(figsize=(6,6),nrows=2)

sns.heatmap(x, annot=True, ax=ax1)

sns.heatmap(x, annot=True, fmt='.1f', ax=ax2)

Comment implémenter une carte thermique visuelle en python

热力图矩阵块之间间隔及间隔线参数

#linewidths(矩阵小块的间隔),linecolor(切分热力图矩阵小块的线的颜色)import matplotlib.pyplot as plt
f, ax = plt.subplots(figsize = (6,4))
cmap = sns.cubehelix_palette(start = 1, rot = 3, gamma=0.8, as_cmap = True)   
sns.heatmap(pt, cmap = cmap, linewidths = 0.05, linecolor= 'red', ax = ax)   
ax.set_title('Amounts per kind and region')
ax.set_xlabel('region')
ax.set_ylabel('kind')

Comment implémenter une carte thermique visuelle en python

#xticklabels,yticklabels横轴和纵轴的标签名输出import matplotlib.pyplot as plt
f, (ax1,ax2) = plt.subplots(figsize = (5,5),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

p1 = sns.heatmap(pt, ax=ax1, cmap=cmap, center=None, xticklabels=False)
ax1.set_title('xticklabels=None',fontsize=8)

p2 = sns.heatmap(pt, ax=ax2, cmap=cmap, center=None, xticklabels=2, yticklabels=list(range(5))) 
ax2.set_title('xticklabels=2, yticklabels is a list',fontsize=8)
ax2.set_xlabel('region')

Comment implémenter une carte thermique visuelle en python

#mask对某些矩阵块的显示进行覆盖

f, (ax1,ax2) = plt.subplots(figsize = (5,5),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

p1 = sns.heatmap(pt, ax=ax1, cmap=cmap, xticklabels=False, mask=None)
ax1.set_title('mask=None')
ax1.set_ylabel('kind')

p2 = sns.heatmap(pt, ax=ax2, cmap=cmap, xticklabels=True, mask=(pt<800))   
#mask对pt进行布尔型转化,结果为True的位置用白色覆盖
ax2.set_title(&#39;mask: boolean DataFrame&#39;)
ax2.set_xlabel(&#39;region&#39;)
ax2.set_ylabel(&#39;kind&#39;)

Comment implémenter une carte thermique visuelle en python

用mask实现:突出显示某些数据

f,(ax1,ax2) = plt.subplots(figsize=(4,6),nrows=2)
x = np.array([[1,2,3],[2,0,1],[-1,-2,0]])
sns.heatmap(x, annot=True, ax=ax1)
sns.heatmap(x, mask=x < 1, ax=ax2, annot=True, annot_kws={"weight": "bold"})   #把小于1的区域覆盖掉

Comment implémenter une carte thermique visuelle en python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn