【Python】seabornでheatmapを描画する方法

  • URLをコピーしました!

今回は、seabornで基本的なheatmapを作成する方法からカスタマイズする方法までを紹介します。

目次

heatmap(ヒートマップ)とは

ヒートマップとはデータを色や濃淡の変化で視覚的に表現するグラフです。

地図上で温度を表現する際に使用されることが多いです。

heatmapの描画方法

それではheatmapを描画する方法を紹介していきます。

heatmapを作成するにあたり、データの前処理が必要です。

flightsのデータセットを使用して、データの前処理を説明します。

flightsのデータセットは以下の通りです。

import seaborn as sns

flights = sns.load_dataset('flights')
flights.head()

indexmonthcolumnyearを指定し、ピボットテーブルを作成します。

ピボットテーブルの作成方法は以下の通りです。

# データの前処理:ピボットテーブルの作成
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講座 icon 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜 icon

他のUdemyの講座が気になる方はこちら

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次