今回は、階層ピラミッドチャートの作り方について紹介していきます。
ピラミッドは、古代エジプトの遺跡であり、学校の授業で誰もが教わるものだと思います。階層ピラミッドチャートは、全体としてはピラミッドに似た形をしており、ピラミッドを階層化することで、数値の大きさ(割合や比率など)を表現するチャートとなります。
この 階層ピラミッドチャートを使って何を作ろうか思いを巡らせていたところ、 現在、日本の野球はオフシーズンであり、物足りない日々が続いているなっということを思い出しました。
そこで、野球の順位は勝率で決まるのですが、セントラルリーグの昨シーズンの各チームの勝率を、階層ピラミッドチャートで表現してみたいと思います。
では、作り方の説明をはじめていきましょう。
階層ピラミッドチャートの元データ
もととなるデータは以下のような項目のファイルになります。
- 1列目:球団
- 2列目:始点終点
- 3列目:勝率
具体的には、以下のようなファイルであり、このファイルをデータソースとして指定します。
球団 | 始点終点 | 勝率 |
---|---|---|
巨人 | 0 | 0.496 |
巨人 | 100 | 0.496 |
阪神 | 0 | 0.579 |
阪神 | 100 | 0.579 |
中日 | 0 | 0.437 |
中日 | 100 | 0.437 |
DeNA | 0 | 0.425 |
DeNA | 100 | 0.425 |
広島 | 0 | 0.481 |
広島 | 100 | 0.481 |
ヤクルト | 0 | 0.584 |
ヤクルト | 100 | 0.584 |
各球団に対して、2行のデータを用意します。
「球団」「勝率」では、同じ値を指定してください。
「始点終点」では、0と100を指定してください。これは、ピラミッドの高さを勝率として使用するための軸であり、始点が0(0%、すなわち、勝率0.00に該当)、終点が100(100%、すなわち、勝率1.00 に該当 )である軸を表します。
データソース
データの取得元は、以下になります。
「当サイトが提供する情報及びサービスは、ご自身の責任と判断においてご利用ください。」とのことで、今回、こちらのサイトからデータを利用することにしました。
ビンの作成
「始点終点」をもとに、以下のビンを作成します。
新しいフィールド名:階層
ビンのサイズ: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個の階層)は灰色となります。
ワークシートの編集
次の流れでワークシートの編集をしていきます。
- マークタイプを「棒」に変更します。
- 「階層」を列シェルフに入れます。
- 「球団」「勝率」「Index」を列シェルフに入れます。
- 列シェルフにある「勝率」を右クリックして、「ディメンション」、および、「不連続」を選択します。
- 「色分け」をマークパネルの「色」に入れます。
- マークパネルにある「色分け」を右クリックして、「次を使用して計算」の「階層」を選択します。
- 再度、マークパネルにある「色分け」を右クリックして、「表計算の編集」を選択します。
- 表計算画面が表示されるので、特定のディメンションにて「球団」を選択し、「球団」を「階層」の上に移動します。
- 再開間隔にて「球団」を指定して、表計算画面を閉じます。
- 列シェルフにある「Index」を、列シェルフ上でCtrlを押しながらドラッグアンドドロップし、「Index」を複製します。
- 列シェルフにある1番目の「Index」をダブルクリックし、直接、「[Index]」を「-[Index]」に変更します。
ワークシートの微調整
次の流れでワークシートの微調整をしていきます。
- Viz上で「球団/勝率」(ヘッダー)のセルにて、右クリックして、「列のフィールドラベルの非表示」にチェックを入れます。
- 行シェルフにある「階層」を右クリックして、「ヘッダーの表示」のチェックを外します。
- 列シェルフにある「Index」を右クリックして、「ヘッダーの表示」のチェックを外します。
- 「集計(色分け)」パネルにてダブルクリックすると、色の編集[色分け]画面が表示されます。
- 色の編集[色分け]画面にて、「データ項目の選択」より各項目(灰色、青色、赤色)を選び、それぞれ対応する色を指定して、「OK」ボタンを押します。
- Viz上で右クリックして、「書式設定」を選択します。
- 枠線の書式設定にて、行の境界線、および、列の境界線を「なし」に設定します。
- 線の書式設定にて、シートのゼロラインを「なし」に設定します。
- 列シェルフにある「球団」を右クリックして、「書式設定」を選択し、フォントのサイズを12にするとともに、太文字に設定します。
- 列シェルフにある「勝率」を右クリックして、「書式設定」を選択し、フォントのサイズを16にするとともに、太文字に設定します。
- 「すべて」マークパネルにて、ツールヒントの「ツールヒントの編集」を開き、不要な項目を削除し、以下のように入力した状態で「OK」ボタンを押します。
勝率: <勝率>
球団: <球団>
- Viz上で、球団、および、勝率の高さを調整します。
- 自動調整にて、「幅を合わせる」を選択します。
ダッシュボードの編集
次の流れでダッシュボードを編集していきます。
- 新しいダッシュボードを追加します。
- サイズにて、「固定サイズ」の「A4横(1169×827)」を選択します。
- 「ダッシュボードのタイトルを表示」にチェックを入れ、ダッシュボードの名前を「階層ピラミッドチャート」に変更します。
- 作成したシートを追加し、「タイトルの非表示」にチェックを入れるとともに、凡例を削除します。
- テキストを追加し、Vizを説明する文言を追加します。
- シートを非表示にします。
階層ピラミッドチャートの完成
これで、 階層ピラミッドチャートの完成です。
Tableau Publicのリンクを貼っています。
このVizでは、2021年度 プロ野球セントラル・リーグの各球団の勝率を表しており、勝率が5割以上の場合は青色に、5割に届かなかった場合は赤色になります。例えば、ヤクルトと阪神のみが勝率5割以上で、DeNA、巨人、広島、中日は勝率が5割に届かなかったことが容易にわかります。
作ってみての感想
階層ピラミッドチャートを使えば、直観的に、割合や比率などの値の大きさをつかむことができます。さらに、色の変化と組み合わせると、より特徴をつかむことができると思います。
例えば、降水確率を表すとします。このとき、30%以下の場合は晴れを意味する赤色、70%以上の場合は雨を意味する青色、その以外は、曇りを意味する白色と色分けするとよいでしょう。ただし、白色を使うので、背景の色は変えたほうがいいでしょうけど・・
少し考えてみると、いろいろ思い浮かんできて、応用範囲は広いようにも感じます。
私も、機会があれば使ってみようとも思いますし、ぜひ、興味を持たれたら、試しに活用してもらえたらとも思います。