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