たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】seabornでヒートマップを作る方法を解説します

PR Pythonを学ぶ

こんにちは、TAKです。
前回に引き続き、今回もpythonのseabornを使った可視化について解説していきます。
いつの間にか10回目となりましたが、今回が最終回となります。

最終回である今回は「Heatmap」(ヒートマップ)について、pythonのJupyter Notebookを用いて紹介していきます。サーモグラフィのように重要度に応じて色付けしてくれる可視化方法です。

【こんな人に読んで欲しい記事です】
1. pythonを用いた可視化方法を学んでいきたい方
2. pythonを用いて「ヒートマップ」を描けるようにしたい方
今回は、第4回で紹介した「棒グラフ」と同じデータセットを使っていきますので、既に以下記事を見ている方は目次「データ可視化①」から読み進めてください。

seabornを用いたデータ可視化 | Heatmap

必要ライブラリのインポート

今回必要となるライブラリはお馴染みの上記3つです。
初回の記事で上記ライブラリの簡単な説明をしているので、今一つわからない方は以下の記事を参考にしてみてください。

利用データの確認

今回は、Kaggleでも公開されているデータを使用します。
データ内容は、2015年アメリカ航空会社の平均的な到着遅延時間(単位:分)を示したものです。

csvファイルの構成
● Month:1月から12月までの各月データ(2015年)
● 各カラム:アメリカ航空会社の略称表記名(計14社分)
下記にてデータ読込結果を表示しているので、そちらを参照してイメージを深めてみてください。

データの準備

では実際にpandasのread_csvを用いてデータセットとして読み込んでいきます。

csvファイルを読み込み、対象データすべてを表示させているのが以下のコードです。
今回は12ヶ月分のデータのみなので、全行表示させても一覧出来る程度の量となっています。

ここでのポイントは2つあります。

ポイント①:index_col引数を用いて、Month列を指定する点
ポイント②:(初回記事のように)parse_dates引数は指定する必要がない点
Monthは時間を表す要素ですが、今回は時系列データではなく、単なるカテゴリとして認識出来れば問題ないため、parse_dates引数は指定していません。

表示されたデータを見てみると、1月から12月までの各航空会社(略記)ごとの平均遅延時間がズラッと並んでいるのがわかりますね。所々マイナスがありますが、これは予定より早く到着したと解釈すれば問題ありません。

データ可視化①

では実際にseabornを使ってヒートマップを描いていきましょう。

まずはカラム名をリストとして読み込んでおきます。
(これは僕の好みなので、別に必須処理ではありません。)

そして、各航空会社ごとの月別遅延時間をヒートマップで可視化したコードが下記となります。

ここでのポイントは以下3つです。

sns.heatmapを用いることで、ヒートマップを描くことが出来る!
● 可視化させるためには、引数dataを指定するだけでOK
● ヒートマップ上に数値を表示させるためには、引数annotをTrue指定にする必要がある

グラフの結果をみてみると、キレイにヒートマップが描けていますね。
右側にあるバーの色合いに応じて、サーモグラフィのように色付けされていることがわかります。
この場合、色が薄い箇所が平均遅延時間が遅いと解釈出来るので、航空会館NKの6月は特に到着遅延が発生していたと言えそうですね。

ヒートマップの可視化自体は以上の方法で十分なのですが、引数を追加することで、自分好みの色合いを持ったヒートマップを描くことも可能となります。そこで、次からは様々なヒートマップの種類を見ていきたいと思います。

データ可視化②

では実際に、どのような色合いを持ったヒートマップを描けるのか紹介していきます。

具体的には以下のコードを参考にして欲しいのですが、引数cmapを追加するだけでOKです。
引数cmapに何を指定すればいいかは、以下のコードやライブラリを参考にしてみてください。

以下の例ではcmapに「coolwarm」を追加した場合のヒートマップが先頭に表示されています。

そして、リストに格納してあるcmap_typeを全件表示させたコード結果が下記となります。
タイトルにcmap_typeの名前を表示させているので、自分好みのヒートマップを見つけるヒントにしてみてください。

まとめ

いかがだったでしょうか?
今回は可視化手法の一つ「ヒートマップ」について紹介してきました。

ヒートマップはデータ間の相関関係を可視化させたいような時にも使える可視化手法なので、是非使えるようにしてみてくださいね。

今回でseaborn可視化シリーズは最後となりますが、10回分の記事を最後まで読んでくださった方はありがとうございました!少しでも理解のお役に立てたなら嬉しい限りです。

では今回はこのへんで。