はじめに
簡潔かつ明瞭にデータを可視化できるライブラリであるseabornを用いて、2次元ヒートマップをheatmapで表示する方法について説明する。
コード&解説
モジュールのインポート
バージョン
データの作成
2次元平面のランダムウォークでヒートマップデータを作成する。2次元ランダムウォークについては下記記事で解説した。
![](https://sabopy.com/wp/wp-content/uploads/2019/12/2Drandomwalk_and_heatmap-160x90.jpg)
ランダムウォークの様子をプロットすると以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_0-1.png)
np.histogram2dによるヒートマップデータの作成
プロットしたx軸、y軸の範囲でヒートマップデータを作成する。
作成したデータはpd.DataFrame()でデータフレーム化し、columnsとindexの名前をそれぞれx,yとした。
heatmapの表示
sns.heatmap(hdata,ax=ax)
だけで下のヒートマップが表示できる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_1-1.png)
データ値の表示範囲の設定
vmin & vmaxを設定することで、vminからvmaxの範囲でヒートマップを表示できる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_2-1-800x300.png)
cmapの種類を変える
cmap=”coolwarm”のようにmatplotlibで利用可能なcmapを設定することでカラーマップを変更することができる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_3-1-800x300.png)
カラーマップの中心を定める
centerを設定することでカラーマップの中心を決めることができる。これによってcmapが変化する場合もある。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_4-1-800x300.png)
はずれ値の影響を避けてcmapの範囲を定める
robust=Trueでvmin,vmaxが設定されていない場合、カラーマップの範囲は極値ではなく、ロバストな分位数によって設定される。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_5-1-800x300.png)
各セルにデータ値を表示
annot=Trueで各セルにデータ値を表示できる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_6-1-800x300.png)
データ値の表示形式の設定
表示するデータの形式やフォントサイズなどはfmt
とannot_kws
で設定できる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_7-2-800x300.png)
一部のセルだけにデータを表示
ax.text()の繰り返し処理によって、一部のセルにのみデータを表示することもできる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_8-1-800x300.png)
セル間の線幅の設定
linewidthsによってセルの間に線を表示して、各セルを際立たせることができる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_9-1-800x300.png)
セル間の線色の設定
デフォルトの線色は白となっている。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_10-1-800x300.png)
カラーバーの表示/非表示
cbar=Falseによってカラーバーを非表示にすることができる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_11-1-800x300.png)
カラーバーを上下に表示
cbar_kws={ “location”:”bottom”}で下にカラーバーが表示され、cbar_kws={ “location”:”top”}で上に表示される。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_12-1-800x400.png)
正方形なヒートマップにする
square =Trueでヒートマップが正方形となる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_13-1-800x400.png)
ラベルの設定
xticklabels=Falseでx軸のラベルが非表示となり、yticklabels =2のようにすることで目盛りが2つおきに表示される。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_14-1-800x300.png)
マスク処理
maskでbool配列を設定するとTrueの部分がマスクされ、マスク部分は空白のセルとなる。
![](https://sabopy.com/wp/wp-content/uploads/2021/11/sns_heatmap_15-1-800x300.png)
コメント