階層ピラミッドチャートの作り方

階層ピラミッドチャート

今回は、階層ピラミッドチャートの作り方について紹介していきます。

ピラミッドは、古代エジプトの遺跡であり、学校の授業で誰もが教わるものだと思います。階層ピラミッドチャートは、全体としてはピラミッドに似た形をしており、ピラミッドを階層化することで、数値の大きさ(割合や比率など)を表現するチャートとなります。

この 階層ピラミッドチャートを使って何を作ろうか思いを巡らせていたところ、 現在、日本の野球はオフシーズンであり、物足りない日々が続いているなっということを思い出しました。

そこで、野球の順位は勝率で決まるのですが、セントラルリーグの昨シーズンの各チームの勝率を、階層ピラミッドチャートで表現してみたいと思います。

では、作り方の説明をはじめていきましょう。

階層ピラミッドチャートの元データ

もととなるデータは以下のような項目のファイルになります。

  • 1列目:球団
  • 2列目:始点終点
  • 3列目:勝率

具体的には、以下のようなファイルであり、このファイルをデータソースとして指定します。

球団始点終点勝率
巨人00.496
巨人1000.496
阪神00.579
阪神1000.579
中日00.437
中日1000.437
DeNA00.425
DeNA1000.425
広島00.481
広島1000.481
ヤクルト00.584
ヤクルト1000.584

各球団に対して、2行のデータを用意します。

「球団」「勝率」では、同じ値を指定してください。

「始点終点」では、0と100を指定してください。これは、ピラミッドの高さを勝率として使用するための軸であり、始点が0(0%、すなわち、勝率0.00に該当)、終点が100(100%、すなわち、勝率1.00 に該当 )である軸を表します。

データソース

データの取得元は、以下になります。

プロ野球データFreak

「当サイトが提供する情報及びサービスは、ご自身の責任と判断においてご利用ください。」とのことで、今回、こちらのサイトからデータを利用することにしました。

ビンの作成

「始点終点」をもとに、以下のビンを作成します。

新しいフィールド名:階層
ビンのサイズ:11

これは、ピラミッドの階層を示します。0から10、10から20、20から30、・・・、90から100をそれぞれ一つの階層としてみなし、10個の階層からなるピラミッドを作成します。各階層は、最初と最後を含めると11あるので(例えば、0から10の場合、0、1、2、3、4、5、6、7、8、9、10の11個)、ビンのサイズは11となります。

計算フィールドの作成

以下の計算フィールドを作成します。

名前:Index
INDEX()

「Index」は、 ピラミッドの横幅を示します。1階層目は横幅が1、2階層目は横幅が2、3階層目は横幅が3、・・・、10階層目は横幅が10となります。

名前:勝率(最大値)
WINDOW_MAX(MAX([勝率]))

「 勝率(最大値)」は、 勝率の最大値を示します。次で紹介する計算フィールド「色分け」で使用します。

名前:色分け
IF [Index] > WINDOW_MAX([Index])*(1-[勝率(最大値)]) THEN
  IF [勝率(最大値)] >= 0.5 THEN
    ”青色”
  ELSE
    ”赤色”
  END
ELSE
  ”灰色”
END

「色分け」は、 各階層の色を示します。ピラミッドは10個の階層からなり、勝率に応じて、階層の色が変わります。勝率が5割(0.50)以上の場合は該当の階層まで青色となり、5割(0.50)未満の場合は 該当の階層まで赤色となります。それ以外の階層は灰色となります。

例えば、勝率が5割5分の場合、下から6個の階層が青色となり、それ以外の階層(上から4個の階層)は灰色となります。

例えば、勝率が4割5分の場合、下から5個の階層が赤色となり、それ以外の階層(上から5個の階層)は灰色となります。

ワークシートの編集

次の流れでワークシートの編集をしていきます。

  1. マークタイプを「棒」に変更します。
  2. 「階層」を列シェルフに入れます。
  3. 「球団」「勝率」「Index」を列シェルフに入れます。
  4. 列シェルフにある「勝率」を右クリックして、「ディメンション」、および、「不連続」を選択します。
  5. 「色分け」をマークパネルの「色」に入れます。
  6. マークパネルにある「色分け」を右クリックして、「次を使用して計算」の「階層」を選択します。
  7. 再度、マークパネルにある「色分け」を右クリックして、「表計算の編集」を選択します。
  8. 表計算画面が表示されるので、特定のディメンションにて「球団」を選択し、「球団」を「階層」の上に移動します。
  9. 再開間隔にて「球団」を指定して、表計算画面を閉じます。
    ワークシートの編集⑧⑨を説明する画像
  10. 列シェルフにある「Index」を、列シェルフ上でCtrlを押しながらドラッグアンドドロップし、「Index」を複製します。
  11. 列シェルフにある1番目の「Index」をダブルクリックし、直接、「[Index]」を「-[Index]」に変更します。
    ワークシートの編集①~⑪を説明する画像

ワークシートの微調整

次の流れでワークシートの微調整をしていきます。

  1. Viz上で「球団/勝率」(ヘッダー)のセルにて、右クリックして、「列のフィールドラベルの非表示」にチェックを入れます。
  2. 行シェルフにある「階層」を右クリックして、「ヘッダーの表示」のチェックを外します。
  3. 列シェルフにある「Index」を右クリックして、「ヘッダーの表示」のチェックを外します。
  4. 「集計(色分け)」パネルにてダブルクリックすると、色の編集[色分け]画面が表示されます。
  5. 色の編集[色分け]画面にて、「データ項目の選択」より各項目(灰色、青色、赤色)を選び、それぞれ対応する色を指定して、「OK」ボタンを押します。
  6. Viz上で右クリックして、「書式設定」を選択します。
  7. 枠線の書式設定にて、行の境界線、および、列の境界線を「なし」に設定します。
  8. 線の書式設定にて、シートのゼロラインを「なし」に設定します。
  9. 列シェルフにある「球団」を右クリックして、「書式設定」を選択し、フォントのサイズを12にするとともに、太文字に設定します。
  10. 列シェルフにある「勝率」を右クリックして、「書式設定」を選択し、フォントのサイズを16にするとともに、太文字に設定します。
  11. 「すべて」マークパネルにて、ツールヒントの「ツールヒントの編集」を開き、不要な項目を削除し、以下のように入力した状態で「OK」ボタンを押します。

勝率: <勝率>
球団: <球団>

  1. Viz上で、球団、および、勝率の高さを調整します。
  2. 自動調整にて、「幅を合わせる」を選択します。
ワークシートの微調整を説明する画像

ダッシュボードの編集

次の流れでダッシュボードを編集していきます。

  1. 新しいダッシュボードを追加します。
  2. サイズにて、「固定サイズ」の「A4横(1169×827)」を選択します。
  3. 「ダッシュボードのタイトルを表示」にチェックを入れ、ダッシュボードの名前を「階層ピラミッドチャート」に変更します。
  4. 作成したシートを追加し、「タイトルの非表示」にチェックを入れるとともに、凡例を削除します。
  5. テキストを追加し、Vizを説明する文言を追加します。
  6. シートを非表示にします。
ダッシュボードの編集を説明する画像

階層ピラミッドチャートの完成

これで、 階層ピラミッドチャートの完成です。

階層ピラミッドチャート

Tableau Publicのリンクを貼っています。

このVizでは、2021年度 プロ野球セントラル・リーグの各球団の勝率を表しており、勝率が5割以上の場合は青色に、5割に届かなかった場合は赤色になります。例えば、ヤクルトと阪神のみが勝率5割以上で、DeNA、巨人、広島、中日は勝率が5割に届かなかったことが容易にわかります。

作ってみての感想

階層ピラミッドチャートを使えば、直観的に、割合や比率などの値の大きさをつかむことができます。さらに、色の変化と組み合わせると、より特徴をつかむことができると思います。

例えば、降水確率を表すとします。このとき、30%以下の場合は晴れを意味する赤色、70%以上の場合は雨を意味する青色、その以外は、曇りを意味する白色と色分けするとよいでしょう。ただし、白色を使うので、背景の色は変えたほうがいいでしょうけど・・

少し考えてみると、いろいろ思い浮かんできて、応用範囲は広いようにも感じます。

私も、機会があれば使ってみようとも思いますし、ぜひ、興味を持たれたら、試しに活用してもらえたらとも思います。