今回は、seabornで基本的なheatmapを作成する方法からカスタマイズする方法までを紹介します。
heatmap(ヒートマップ)とは
ヒートマップとはデータを色や濃淡の変化で視覚的に表現するグラフです。
地図上で温度を表現する際に使用されることが多いです。
heatmapの描画方法
それではheatmapを描画する方法を紹介していきます。
heatmapを作成するにあたり、データの前処理が必要です。
flightsのデータセットを使用して、データの前処理を説明します。
flightsのデータセットは以下の通りです。
import seaborn as sns
flights = sns.load_dataset('flights')
flights.head()
indexをmonth、columnをyearを指定し、ピボットテーブルを作成します。
ピボットテーブルの作成方法は以下の通りです。
# データの前処理:ピボットテーブルの作成
flights_pivot = flights.pivot("month", "year", "passengers")
flights_pivot
これでデータの事前準備は完了です。
データの事前準備からheatmapの描画までをまとめると以下です。
import seaborn as sns
# データセットをロード
flights = sns.load_dataset('flights')
# データの前処理:ピボットテーブルの作成
flights_pivot = flights.pivot("month", "year", "passengers")
# heatmapを描画
sns.heatmap(flights_pivot)実行結果

色の濃淡で乗客数の変化を表現しています。
7月(Jul)、8月(Aug)に乗客数が増加していることが見て取れますね!
heatmapのカスタマイズ
heatmapをカスタムする方法を紹介します。
cmap: カラーマップを指定
cmapオプションでカラーマップの種類を変更できます。
カラーマップとは、数値データを色に変換するときの、ルールみたいなものです。
カラーマップについて詳しく知りたい方はこちら
heatmapでカラーマップを指定する方法は以下の通りです。
sns.heatmap(flights_pivot, cmap="YlGnBu")実行結果

YlGnBuというカラーマップを使用しました。黄色(数値小)からはじまり緑、青(数値大)へと変化します。
7月(Jul)、8月(Aug)に乗客数が増加していることがわかりやすくなったと思います。
annot: セルに数値を表示
annotオプションで、heatmap上に数値の表示の有無を指定できます。
annot=Trueとすると、heatmap上に数値が表示されます。
デフォルトではFalseが指定されています。
annotオプションの使い方は以下の通りです。
sns.heatmap(flights_pivot, annot=True)実行結果

数値は表示できましたが、数値が見えにくくなってしまいました。
そこで、数値を表示形式をfmtオプションで変更してみます。
sns.heatmap(flights_pivot, annot=True, fmt='d')実行結果

cbar: カラーバーを非表示
cbarオプションを使用してカラーバーを非表示にすることができます。
カラーバーを非表示にすることで、スペースの確保に役立ちます。
cbar=Falseとすると、カラーバーを非表示にできます。
cbarの使用方法は以下の通りです。
sns.heatmap(flights_pivot, cbar=False)実行結果

まとめ
今回はheatmapの描画方法から、heatmapをカスタマイズする方法までを紹介しました。
heatmapはデータを可視化する上で大変便利なツールです。
ぜひ自由自在に操れるようになってください!
ここまで読んでくださりありがとうございます。
参考
おすすめ教材
米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座他のUdemyの講座が気になる方はこちら


