Excelでヒストグラムを作ろう!
高校の数学Ⅰで登場するヒストグラムですが,実際にコンピュータ上で作ってみたことがある人は多くないのではないでしょうか.データの数が多くなるほど,手で処理をするのは困難になります.本記事では,Excelを使ってヒストグラムを作ってみたいと思います.皆さんもぜひ,一緒に作ってみてください.
それでは,ヒストグラムの作り方を順に説明していきます.
データを集めよう!
まずは,ヒストグラムにしたいデータが必要になります.各省庁が公開している実データを使っても良いのですが,ここでは,少し変わった人工データを使いたいと思います.
以下に用意したのは,架空の高校の,あるクラスの親の年収のデータです.
30人分のデータがあります.
親の年収(万円) |
447 |
301 |
412 |
630 |
337 |
356 |
297 |
530 |
546 |
334 |
390 |
980 |
332 |
399 |
366 |
780 |
245 |
346 |
439 |
691 |
298 |
352 |
490 |
397 |
481 |
451 |
198 |
310 |
644 |
387 |
ここでは,このデータを使ってヒストグラムを作ることにします.
まずは,上の表全体をドラッグで選択してコピーし,Excelのシートに貼り付けましょう.
階級を決めよう!
データの準備ができましたら,度数分布表を作るために階級を決めます.
階級を決めるにあたって,データの最大値と最小値を確認しておきましょう.
それぞれ「=MIN(A2:A31)」「=MAX(A2:A31)」とセルに入力すれば表示されます(Excelの関数はある程度知っている前提で話を進めます).
それでは階級を決めていきましょう.
階級を決めるときのポイントは「ヒストグラムにしたときに,データの分布が分かりやすい階級にすること」です.それと,階級の幅は基本的に揃えましょう.幅が異なる階級の場合,ヒストグラムの描画に一手間必要になります(後述).
本当なら皆さんに試行錯誤をしてほしいところですが,ここではあらかじめ用意したヒストグラムを見比べてもらいましょう.
まずは階級を「0万円以上500万円未満」と「500万円以上1000万円未満」の2つにした場合のヒストグラムがこちらになります.
もはや何が何やら分かりません.
次に,「100万円以上200万円未満」「200万円以上300万円未満」……「900万円以上1000万円未満」と幅が100万円の9つの階級にするとどうなるでしょうか.
2つ目のヒストグラムの方が,分布が分かりやすかと思います.
ちなみに,さらに細かく階級分けすると,度数1が点在する形になってしまいますので,これくらいの階級幅がちょうど良いと思います.
集まり過ぎず,散らばり過ぎないような階級にすると,分布を捉えやすくて良いでしょう.
度数分布表を作ろう!
今回は「100万円以上200万円未満」「200万円以上300万円未満」……「900万円以上1000万円未満」と幅が100万円の9つの階級で度数分布表を作ってみましょう.
表はどこに作っても良いのですが,今回はC4セルが左上端になるように表を作ってみました.ちなみに度数分布表は,どこに作っていただいても構いません.階級はキーボードで入力しましょう.(階級をキーボードで入力しない方法もありますが,今回はキーボードで入力しましょう.)
それでは,度数を計算していきましょう.
ここではCOUNTIFS関数を使います.
COUNTIFS関数は,複数の条件を満たすセルの数を数える関数です.
使い方は以下の通りです.
=COUNTIFS([範囲1],条件1,[範囲2],条件2 ……)
さて具体的に「100万円以上200万円未満」のセルの個数を数えてみましょう.
=COUNTIFS($A$2:$A$31, ”>=100″, $A$2:$A$31, “<200”)
「$A$2:$A$31」1絶対参照は分かりますよね?分からない人にはこちらのサイトがおすすめです.はデータの範囲です.ここで選択した範囲について,条件に合うセルの数をカウントします.「”>=100″」は条件になります.条件はダブルクオーテーションで挟む必要があります.「>=」は以上を意味し,「”>=100″」は100以上を意味しています.その次の「$A$2:$A$31」は2回目の条件を適用するデータの範囲です.「”<200″」は200未満を表しています.
よって,「=COUNTIFS($A$2:$A$31, ”>=100″, $A$2:$A$31, “<200”)」は,A2:A31の範囲にある100以上200未満のデータの数を表しています.
同様に,「200万円以上300万円未満」なら「=COUNTIFS($A$2:$A$31, ”>=200″, $A$2:$A$31, “<300″)」,「300万円以上400万円未満」なら「=COUNTIFS($A$2:$A$31, ”>=300″, $A$2:$A$31, “<400”)」といった具合になります.
残りは全て自力で埋めてみましょう!(答え合わせは上の画像で)
ヒストグラムを描いてみよう!
度数分布表が完成したら,ようやくヒストグラムを作成できます.
まずはデータ範囲を選択します.
データを選択した状態で,「挿入」タブから2Dの集合縦棒グラフを選択します.下のようなグラフが表示されるかと思います.
棒グラフの上で右クリックをし,データ系列の書式設定を選択します.
ここで,「要素の間隔」の項目を0%にします.
最後にグラフタイトルを追加して,お好みでラベルの名前を追加すれば完成です!
ここまでできた方,お疲れ様でした!
階級の幅が異なるヒストグラム
高校の学習指導要領外の内容です.
階級の幅が異なる場合は,ヒストグラムを描くために一工夫必要となります.
例えば,以下のような度数分布表があったとしましょう.
先ほど作ってもらった度数分布表と似ていますが,最後の階級が「800万円〜1000万円」と,他の階級の2倍の幅になっています.
さて問題です.
この場合,どのようなヒストグラムを書けば良いでしょうか?
A.「800万円〜1000万円」の階級も,他の階級と同じように扱う(幅も高さも同じ)
B.「800万円〜1000万円」の階級は幅が2倍なので棒の幅も2倍にする.
C.「800万円〜1000万円」は幅を2倍にして,高さは度数の半分にする.
正解は……
正解は,C.幅を2倍にして,高さは度数の半分にするでした!
階級の幅が異なるヒストグラムは,幅に反比例させて高さを変える必要があります.
というのもヒストグラムは,数値のおおよその分布を見るためのものであり,幅と面積が最も重要だからです.Aの図ですと,幅の縮尺が突然変わっています.正当な理由もなく幅が変わる数直線を想像すると気持ち悪いですよね.Bの図だと「800万〜1000万」の階級が過剰に多く見えてしまいます.
ここは間違えやすいポイントなのでしっかり押さえておきましょう2検索すると間違いのあるヒストグラムが大量にヒットします.一部の階級の幅が0のヒストグラムや,階級の幅が異なるにもかかわらず,高さが度数になっているヒストグラムが散見されます.悪い例としてリンクを貼って恐縮ですが,あれもそれもこれもヒストグラムではありません!