ホームページ >バックエンド開発 >Python チュートリアル >Pythonでビジュアルヒートマップを実装する方法

Pythonでビジュアルヒートマップを実装する方法

零到壹度
零到壹度オリジナル
2018-04-04 14:22:2650301ブラウズ


この記事では、Pythonでビジュアルヒートマップを実装する方法を主に紹介しますが、編集者はそれが非常に優れていると思うので、今すぐ共有して参考にします。エディターをフォローして見てみましょう

ヒート マップ

1. ヒート マップを使用して、データ テーブル内の複数の特徴の類似性を確認します。公式 API パラメータとアドレスを参照してください:

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

(1) ヒート マップ入力データ パラメーター:

data: 行列データ セット。numpy 配列または pandas DataFrame にすることができます。 DataFrame の場合、df のインデックス/列情報はヒートマップの列と行にそれぞれ対応します。つまり、pt.index はヒート マップの行ラベル、pt.columns はヒート マップの列ラベルです。ヒート マップ

(2) ヒート マップ マトリックス ブロック カラー パラメーター:

vmax、vmin: それぞれ、ヒート マップの最大および最小のカラー値の範囲。デフォルトはデータ テーブル
cmap の値に基づいて決定されます。 : 数値から色空間、値へのマッピング matplotlib パッケージ内のカラーマップ名またはカラーオブジェクト、または色を表すリストです。パラメーターのデフォルト値を変更します: center パラメーターに従って設定します。
center: データテーブルの場合値が異なる場合は、ヒート マップのカラー センター アライメント値を設定します。センター値を設定すると、データ オーバーフローがある場合、生成される画像の全体的な深さを調整できます。 vmin は自動的に変更されます
robust: デフォルト値は False で、vmin と vmax の値を設定します。 ヒート マップのカラー マッピング範囲はロバストに従って設定されます。極値を使用する代わりに分位値を使用します

(3) ヒート マップ マトリックス ブロックのアノテーション パラメーター:

annot( annotate): デフォルト値は False で、True の場合、データはヒート マップの各正方形に書き込まれます。 ; マトリックスの場合、ヒートマップの各マス目にマトリックスの対応する位置データが書き込まれます
fmt: 文字列形式コード、後数桁を保持するなど、マトリックス上の数値を識別するためのデータ形式小数点
annot_kws: デフォルト値は False です。True の場合は、matplotlib パッケージのフォント設定のテキスト クラスで数値のサイズ、色、フォントを設定します。

(4) ヒート マップ マトリックス ブロック間の間隔と間隔線パラメーター:

linewidths: ヒート マップ内の「ペアごとのフィーチャ関係を表すマトリックス ブロック」間の間隔を定義します
linecolor: それぞれを分割する線の色ヒートマップ上のマトリックスブロックのデフォルト値は「白」です

(5) ヒートマップのカラースケールバーパラメータ:

cbar: ヒートマップのカラースケールバーを側面に描画するかどうか、デフォルト値はTrue
cbar_kws: ヒート マップの側面にカラー スケール バーを描画する場合、関連するフォント設定、デフォルト値は None です
cbar_ax: ヒート マップの側面にカラー スケール バーを描画する場合、スケールバーの位置設定、デフォルト値は None です

(6) square: ヒート マップ マトリックスの小さなブロックの形状を設定します、デフォルト値は False です

xticklabels、yticklabels:xticklabels はラベル名の出力を制御します各列の yticklabels は、各行出力のラベル名の出力を制御します。デフォルト値は自動です。 True の場合、DataFrame の列名がラベル名として使用されます。 False の場合、行ラベル名は追加されません。リストの場合、ラベル名はリストに指定された内容に変更されます。整数 K の場合、グラフ上の K 個のラベルごとにラベルを付けます。 auto の場合、ラベルのラベル間隔が自動的に選択され、ラベル名の重複しない部分 (またはすべて) が出力されます。
mask: 特定のマトリックス ブロックを表示するかどうかを制御します。デフォルト値は「なし」です。ブール型 DataFrame の場合、DataFrame 内の True の位置を白で覆います
ax: 図面の座標軸を設定します。通常、複数のサブグラフを描画する場合、異なるサブグラフの値を変更する必要があります
**kwargs :他のすべてのキーワード引数は ax.pcolormesh に渡されます

ヒートマップ マトリックス ブロックのカラー パラメーター

#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')

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')

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')

Pythonでビジュアルヒートマップを実装する方法

ヒートマップ マトリックス ブロックの注釈パラメーター

#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

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)

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')

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')

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;)

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的区域覆盖掉

Pythonでビジュアルヒートマップを実装する方法

以上がPythonでビジュアルヒートマップを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。