(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【R言語】image関数を用いた二次元配列のヒートマップ

スポンサーリンク

行列の可視化

2次元配列(行列)を可視化する場合に使えるimage関数を実例を示しながら紹介します。

サンプルデータ

まず、元となる2次元配列ですが
R言語にてデフォルトで入っているサンプルデータAirPassengersを用います。

アメリカの航空会社から提供されたデータで、1949年から12年間の国際線旅客数の毎月の合計値です。

str関数を使って見てみると、12年x12ヶ月、計144の値だと確認できました。

> str(AirPassengers)
 Time-Series [1:144] from 1949 to 1961: 112 118 132 129 121 ...

このデータに対する可視化を順を追って説明していきます。

実装

まず、こちらを2次元配列に格納します。

> airpass <- AirPassengers
> m_airpass <- matrix(airpass,ncol=12)

行列m_airpassの値の入り方は以下のようになります。行と列の入り方を逆にする場合は byrowオプションを使いますが、今回はこのままでいきます。
f:id:mtiit:20170920230958p:plain


これをそのままimage関数にて可視化したものがこちらです。
f:id:mtiit:20170920232527p:plain

ただし、この出力結果が少し見づらいです。

その理由は下記2点です。

image関数のデフォルトでは、値が小さいものほど色が濃くなっている

x軸、y軸の値が入っていない


この2点の修正と修正結果は以下となります。

> image(1:12,1949:1961,max(m_airpass)-m_airpass,xlab="",ylab="",axes=FALSE)
> axis(1,1:12)
> axis(2,1949:1961)

f:id:mtiit:20170920232823p:plain

max(m_airpass)から値を引くことによって値を反転させています。

軸の表示をimage関数と分けて行うことで、表示したい値を画像に追記しています。

おまけ R言語を用いたその他の可視化手法

合わせて、ご参考ください。