「Excelで グラフィカル分析 」と書くと、大したことができないような印象を持つ方がいるかもしれませんが、筆者はそう思っていません。 Excelは、データとグラフがくっついていて、 データを直接見たり触ったりしながら分析できるのが、すごくいいです。 また、グラフの機能もスパークラインのように、大量データ向きのものがあり、Excelならではの分析ができます。
オフィスの大抵のパソコンにはExcelが入っていますので、 他人のパソコンにデータがあったりして、そのパソコンでとりあえずデータを見たい時には、Excelの技をたくさん知っていると良いこともあります。 また、そういう状況の時は、そのパソコンの持ち主は、Excelでデータを扱うことはあっても、 他のソフトでデータを分析することはなかったりもするので、 Excelの技を紹介すると喜んでもらえることもあります。
このページの内容は、Excelのグラフとしてあまり知られていないものの、 データサイエンス のツールとして、とても便利なものをまとめています。
たくさんの変数を見るためのグラフ
・たくさんの量的変数のサンプル順の折れ線グラフ(スパークライン)
・たくさんの量的変数の1次元分布の比較(箱ひげ図)
・たくさんの量的変数を色で見る(ヒートマップ)
豆知識
・区切りの良い区間のヒストグラム
・棒グラフのX軸が2段
最近のExcelには、たくさんの変数を見るためのグラフが充実して来ています。
初めて扱うデータの場合、とりあえず 折れ線グラフ にして、見てみたいことがあります。 列が大量な時に便利なのが、Excelのスパークラインです。
まず、こんなデータがあったとします。
1行目に新しい行を作ります。
行の高さも少し大きくしておきます。
挿入のメニューから、スパークラインの折れ線を選びます。
データの範囲と、グラフを作るセルを指定します。
A列のデータをグラフにするのでしたら、グラフを作るセルはA1にすると良いです。
グラフが1個できました。
あとは、A1セルをコピーして、B1、C1にペーストしていくだけです。
効率の良いコピーペーストのやり方は、割愛します。
箱ひげ図 だけですが、たくさんの量的変数をいっぺんに見る方法として使うことができます。
まず、こんなデータがあったとします。
データの範囲を選びます。
挿入のメニューから、箱ひげ図を選びます。
ひとつの変数がひとつの箱になっている箱ひげ図ができました。
Y軸の範囲の調整等は、他のグラフと同じです。
書式設定を使うと、中央値の出し方を変えることもできます。
Excelには、「 ヒートマップ 」という名前のグラフはないです。 しかし、 データを表の形で表示しているので、条件付き書式の「カラースケール」を組み合わせると、ヒートマップを作ることができます。
ヒートマップは、スパークラインとは違った見方で、Excelで大量のデータを見ることができます。
下の2つの表には、同じ数字が書かれているのですが、ヒートマップにした方は、値が極端に高いところが緑色、
低いところが赤色、中間が黄色になっています。
ピボットテーブルは、筆者は2003年に会社の同僚から教えてもらいました。 その頃には既にあったものですが、Excelを普段使う人でも、知らない人が多いです。
データの範囲を選択して、挿入からピボットテーブルを選ぶと、GUIで自由自在に集計のできる画面が出て来ます。
ピボットテーブルのシート上で、グラフを作成すると、ピボットグラフになります。 ピボットテーブルの内容がそのままグラフになります。
欲しい集計値がなかったり、散布図が使えなかったりする不便さは未だにありますが、
いわゆるインタラクティブ(対話型)な
グラフィカル分析
ができます。
Excelで 区切りの良い区間のヒストグラム を作る方法ですが、 ROUNDDOWN関数と、IF関数と、「ビンの幅」の設定の、3つを組み合わせます。
まず、下のようなデータがあったとします。
これをこのままヒストグラムにすると、区切りが最大値と最小値で決まるヒストグラムになります。
次に、B2セルに
=ROUNDDOWN(A2,0)
と入れてから、B列の下のセルに関数を、コピーします。
(これは、小数点以下を切り捨てるための設定です。
少数第2位以下を切り捨てるのなら、「0」にしているところが「1」になります。
1の位以下を切り捨てるのなら、「0」にしているところが「-1」になります。)
これをこのままヒストグラムにします。
とりあえず、区切りが整数になりました。
上のグラフで、最小値が「82」になっていることがわかります。
C2セルに
=IF(B2=82,B2,B2+1)
と入れてから、C列の下のセルに関数をコピーします。
そして、C列のデータをヒストグラムにします。
この関数は、B列の数字が82なら、82をC列に書いて、82以外なら、C列の数字に1を足すための関数です。
「1」というのは、区間の幅にする数字です。
Excelのヒストグラムは、一番左の棒が「○○以上、××以下」の区間になっていて、
それ以外の棒は、「〇〇より大きい、××以下」となっています。
桁を加工したデータでヒストグラムを作る場合、
この関数を入れないと、一番左の棒に、本当は2本の棒に分かれて欲しいデータが混ざってしまいます。
また、例えば、ヒストグラムの横軸に[90,91]と書いてある棒には、
元のデータが「91以上92未満」で小数点以下を切り捨てたことによって「91」になったデータが入るのですが、
[90,91]と書いてあると「元のデータが90と91の間」と思えてしまうため、ややこしいことになります。
この関数を入れることで、この2つの問題を解決して、わかりやすいグラフにします。
X軸の書式設定を開いて、「ビンの幅」を「1」にします。
これでできあがりです。
上の作り方をすると、できあがったグラフの
[90,91]の棒は、元のデータで「90以上91未満」
になっているものの頻度です。
そのため、Excelで、特にデータの加工をしないでヒストグラムを作った時に
[90,91]の棒は、元のデータで「90より大きい91以下」
になっている事を知っている人は、混乱する可能性があります。
また、筆者の場合は、「以上と未満」で区間が決まっていて欲しい経験しかないですが、 「より大きいと以下」で区切りの良い区間が決まっていて欲しい場合は、上の作り方だと正しくないです。
[90,91]の棒が、元のデータで「90より大きい91以下」
になるようにするには、B列にROUNDUP関数を使います。
C列は、
=IF(B2=83,B2-1,B2)
になります。1番目の引数にB列の最小値を使うことは同じですが、2番目、3番目の引数が違ってきます。
上のようなデータがあったとします。
このデータ全体を選んで、棒グラフを作ると、X軸のラベルは2つの質的変数が2段になっている棒グラフができます。
X軸のラベルについて、層別(分割)を進めていることがわかるようにラベルを入れたい場合は、
データに空白を作るようにします。
順路 次は ggplot2
Tweet