筋肉で解決しないために。

日々出会うモノに対する考察をしたり、主に以下のテーマに関して書いています。 データサイエンス/人工知能/AI/機械学習/DeepLearning/Python//数学/統計学/統計処理

searborn入門第3回目、「ヒートマップとクラスターマップ」

こんにちは、ワタルです。

さっと見て、「あぁそうだったそうだった」と確認できるハンドブックのような存在を目指して。

searborn入門第3回目、「ヒートマップとクラスターマップ」です。

はじめに

このエントリでは、seabornのサンプルデータを用いてヒートマップとクラスターマップを描く手法について学びます。 以下の関数を学習することができます。

sns.load_dataset("flight_dframe")(サンプルデータの取得)
dataframe.pivot('a','b','c')(ピボットテーブルに形成)
seaborn.heatmap()(ヒートマップを描く)
seaborn.clustermap()(クラスターマップを描く)

おまじない

import numpy as np
from numpy.random import randn
import pandas as pd

from scipy import stats

import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline

サンプルデータの取得

#Seabornにサンプルデータがあります。
flight_dframe = sns.load_dataset("flight_dframe")

または、Githubから取得することもできます。 https://github.com/mwaskom/seaborn-data/blob/master/flights.csv

csvの場合は、pd.read_csv("tips.csv")で読み込むことができます。

取得したdataframeを表示します。

flight_dframe.head()

>>>
    year    month   passengers
0  1949   January     112
1  1949   February    118
2  1949   March       132
3  1949   April       129
4  1949   May         121

dataframe.pivot('a','b','c')(ピボットテーブルに形成)

第一引数は、index 第二引数は、columns 第三引数は、values を意味しています。

flight_dframe = flight_dframe.pivot('month','year','passengers')
flight_dframe

>>>
    year    1949   1950   1951   1952   1953   1954   1955   1956   1957   1958   1959   1960
month                                               
April       129    135    163    181    235    227    269    313    348    348    396    461
August      148    170    199    242    272    293    347    405    467    505    559    606
December    118    140    166    194    201    229    278    306    336    337    405    432
February    118    126    150    180    196    188    233    277    301    318    342    391
January     112    115    145    171    196    204    242    284    315    340    360    417
July        148    170    199    230    264    302    364    413    465    491    548    622
June        135    149    178    218    243    264    315    374    422    435    472    535
March       132    141    178    193    236    235    267    317    356    362    406    419
May         121    125    172    183    229    234    270    318    355    363    420    472
November    104    114    146    172    180    203    237    271    305    310    362    390
October     119    133    162    191    211    229    274    306    347    359    407    461
September   136    158    184    209    237    259    312    355    404    404    463    508
December    118    140    166    194    201    229    278    306    336    337    405    432

seaborn.heatmap()(ヒートマップを描く)

#引数cmapは色の指定
カラーコードはこちら
https://matplotlib.org/examples/color/colormaps_reference.html
#annotにTrueを指定するとそれぞれの値を表示します
#fmtは出力フォーマットを指定しています
sns.heatmap(flight_dframe,cmap='OrRd', annot=True, fmt='d')

>>>

f:id:watarumon:20180703183456p:plain

中心を指定して、色を変える

ここでは、April,1955を中心に描いてみます。

sns.heatmap(flight_dframe, center=flight_dframe.loc['April ',1955],cmap='bwr')

>>>

f:id:watarumon:20180703183509p:plain

seaborn.clustermap()(クラスターマップを描く)

ここでは、データを規格化した結果を描画します。 これは、似たものを分類するクラスター分析を行った結果になります。

sns.clustermap(flight_dframe,cmap='OrRd', standard_scale=1)

f:id:watarumon:20180703183524p:plain

今回は、少し短いですが、seabornのサンプルデータを用いてヒートマップとクラスターマップを描く手法について学びました。

お疲れ様でした!

それじゃー、また。