トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

Excelのグラフ

「Excelで グラフィカル分析 」と書くと、大したことができないような印象を持つ方がいるかもしれませんが、筆者はそう思っていません。 Excelは、データとグラフがくっついていて、 データを直接見たり触ったりしながら分析できるのが、すごくいいです。 また、グラフの機能もスパークラインのように、大量データ向きのものがあり、Excelならではの分析ができます。

オフィスの大抵のパソコンにはExcelが入っていますので、 他人のパソコンにデータがあったりして、そのパソコンでとりあえずデータを見たい時には、Excelの技をたくさん知っていると良いこともあります。 また、そういう状況の時は、そのパソコンの持ち主は、Excelでデータを扱うことはあっても、 他のソフトでデータを分析することはなかったりもするので、 Excelの技を紹介すると喜んでもらえることもあります。

このページの内容は、Excelのグラフとしてあまり知られていないものの、 データサイエンス のツールとして、とても便利なものをまとめています。

知りたいグラフへの近道

たくさんの変数を見るためのグラフ
たくさんの量的変数のサンプル順の折れ線グラフ(スパークライン)
たくさんの量的変数の1次元分布の比較(箱ひげ図)
たくさんの量的変数を色で見る(ヒートマップ)

探索用のグラフ

豆知識
区切りの良い区間のヒストグラム
棒グラフのX軸が2段

たくさんの変数を見るためのグラフ

最近のExcelには、たくさんの変数を見るためのグラフが充実して来ています。

たくさんの量的変数のサンプル順の折れ線グラフ(スパークライン)

初めて扱うデータの場合、とりあえず 折れ線グラフ にして、見てみたいことがあります。 列が大量な時に便利なのが、Excelのスパークラインです。

まず、こんなデータがあったとします。
スパークラインを描く

1行目に新しい行を作ります。 行の高さも少し大きくしておきます。
スパークラインを描く

挿入のメニューから、スパークラインの折れ線を選びます。
スパークラインを描く

データの範囲と、グラフを作るセルを指定します。 A列のデータをグラフにするのでしたら、グラフを作るセルはA1にすると良いです。
スパークラインを描く

グラフが1個できました。
スパークラインを描く

あとは、A1セルをコピーして、B1、C1にペーストしていくだけです。 効率の良いコピーペーストのやり方は、割愛します。
スパークラインを描く

たくさんの量的変数の1次元分布の比較(箱ひげ図)

箱ひげ図 だけですが、たくさんの量的変数をいっぺんに見る方法として使うことができます。

まず、こんなデータがあったとします。
箱ひげ図

データの範囲を選びます。
箱ひげ図

挿入のメニューから、箱ひげ図を選びます。
箱ひげ図

ひとつの変数がひとつの箱になっている箱ひげ図ができました。 Y軸の範囲の調整等は、他のグラフと同じです。 書式設定を使うと、中央値の出し方を変えることもできます。
箱ひげ図

たくさんの量的変数を色で見る(ヒートマップ)

Excelには、「 ヒートマップ 」という名前のグラフはないです。 しかし、 データを表の形で表示しているので、条件付き書式の「カラースケール」を組み合わせると、ヒートマップを作ることができます。

ヒートマップは、スパークラインとは違った見方で、Excelで大量のデータを見ることができます。

下の2つの表には、同じ数字が書かれているのですが、ヒートマップにした方は、値が極端に高いところが緑色、 低いところが赤色、中間が黄色になっています。
ヒートマップ ヒートマップ

探索用のグラフ(ピボットテーブル)

ピボットテーブルは、筆者は2003年に会社の同僚から教えてもらいました。 その頃には既にあったものですが、Excelを普段使う人でも、知らない人が多いです。

データの範囲を選択して、挿入からピボットテーブルを選ぶと、GUIで自由自在に集計のできる画面が出て来ます。

ピボットテーブルのシート上で、グラフを作成すると、ピボットグラフになります。 ピボットテーブルの内容がそのままグラフになります。

欲しい集計値がなかったり、散布図が使えなかったりする不便さは未だにありますが、 いわゆるインタラクティブ(対話型)な グラフィカル分析 ができます。
ピボットテーブル

豆知識

区切りの良い区間のヒストグラム

Excelで 区切りの良い区間のヒストグラム を作る方法ですが、 ROUNDDOWN関数と、IF関数と、「ビンの幅」の設定の、3つを組み合わせます。

まず、下のようなデータがあったとします。 これをこのままヒストグラムにすると、区切りが最大値と最小値で決まるヒストグラムになります。
ヒストグラム2     ヒストグラム2

次に、B2セルに
=ROUNDDOWN(A2,0)
と入れてから、B列の下のセルに関数を、コピーします。
(これは、小数点以下を切り捨てるための設定です。 少数第2位以下を切り捨てるのなら、「0」にしているところが「1」になります。 1の位以下を切り捨てるのなら、「0」にしているところが「-1」になります。)
これをこのままヒストグラムにします。 とりあえず、区切りが整数になりました。
ヒストグラム2   ヒストグラム2

上のグラフで、最小値が「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つの問題を解決して、わかりやすいグラフにします。
ヒストグラム2   ヒストグラム2

X軸の書式設定を開いて、「ビンの幅」を「1」にします。 これでできあがりです。
ヒストグラム2   ヒストグラム2

上の作り方をすると、できあがったグラフの
[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段

棒グラフのデータピボットテーブル
上のようなデータがあったとします。 このデータ全体を選んで、棒グラフを作ると、X軸のラベルは2つの質的変数が2段になっている棒グラフができます。

X軸のラベルについて、層別(分割)を進めていることがわかるようにラベルを入れたい場合は、 データに空白を作るようにします。
棒グラフのデータピボットテーブル



順路 次は ggplot2

Tweet データサイエンス教室