私の場合…WOW2024 Week37
前回、日本語での解説ブログを始めてみたことをXでつぶやいたら、思った以上の反響をいただき、うれしかったのと少しのプレッシャーを感じていますw
細く長くをモットーに続けていけたらと思っています。
早速今回のお題です。
▼今回のお題
以下、私の手順です。
前回もお伝えしているとおり、これ以外にも、もっともっとスマートな手順があると思うので、ぜひTableau Publicでみなさんのダッシュボードを覗いてみることをおススメします。
1.全体像を把握する
出題者のVizを要件と合わせて(もちろん日本語翻訳)眺めながら、どんな要素が必要か想像してみます。
・アイコン(イラスト)が使われている→「形状」なんだろうな
・細かくカーソルを動かすと「○」と「イラスト」が別物のよう→二重軸?
・一つ一つのメダルを縦に並べる→データの扱いに工夫がいりそう
・トータルのメダル数が一番下にだけ表示→累計を計算して一番下にだけラベルをつける計算式が必要?
・メダルは銅・銀・金の順番→並べ替えが必要
・フィルターはドロップダウンリストの選択形式→シンプルなフィルター機能?
・メダル獲得がない日も表示→X軸を固定する必要あり
・メダルの個数に関係なくY軸も動かない→Y軸を固定する必要あり
2.メダルを積み上げる
まずば、シンプルに「列」に[Day]、「行」に[Daily Medal Winners (カウント)]を入れて、「マーク」で「形状」を選んでみました。
既にこの時点で何となく完成形に近いイメージです。なので、私の場合、この形を軸に進めていきました。
ここから、合計になってしまっているメダルをバラバラにする必要があります。
メダルひとつひとつをバラバラにするためには、以下の要素が必要です。
・国:「Country」
・メダルの種類:「Medal」
・競技:「Event」
・種目:「Event detail」
これらをすべて、「マーク」の「詳細」に入れます。
すると、すべての日が「1」のところで横一列になってしまうのでびっくりするのですが、安心してください。
メダルひとつひとつはバラバラになっているのですが、全部が「1」の場所で重なってしまっている状態なので、これを縦に広げていきます。
メニューバーの「分析」をクリックして「スタックマーク」を「オン」(デフォルトでは「自動」で「オフ」)にします。
そうすると、「詳細」に入れた情報の粒度で積み上げられた状態になります。
※「スタックマーク」は棒グラフとかで一つの軸に複数の要素があるときに”積み上げる”のか”重ねる”のかを選ぶ機能
お題では、上から下に積み上がって(積み下がって?)いくので、軸を上下反対にします。
軸を右クリックして「軸の編集」で「スケール」の「反対」にチェックをいれます。
これで、メダルの積み上げは完了です。
3.メダルを作る
「形状」にアイコンを割り当てる
競技ごとにアイコンが違うので、割り当てていきます。
「マーク」で「形状」に[Event]を入れます。
そうすると自動的に競技ごとにデフォルトの形状が割り当てられます。ここから競技ごとのアイコンに割り当てを変更していきます。
競技のアイコンはデフォルトではインストールされていないので、自分の環境に読み込む必要があります。
Tableauでは「カスタム形状」と言って、いろんなマークを取り込んで使うことができます。しかも、指定のフォルダに画像ファイルを置くだけなので簡単です。今回も「カスタム形状」として提供されているアイコンを読み込みます。
ダウンロードした「Olympic Sports-20240911T002806Z-001.zip」をダブルクリックして表示される「Olympic Sports」フォルダをフォルダごと以下ディレクトリに保存します。
ドキュメント>マイ Tableau リポジトリ >形状
(C:\Users\akane\Documents\マイ Tableau リポジトリ\形状)
※私の場合:Tableau Desktop Public Edition(いわゆる無料版)の場合のディレクトリ
※カスタム形状を取り込むための手順は、過去のnote記事でもう少し詳しく書いているのがあるので分かりづらい場合はそちらも参考にしてください。
「マーク」の「形状」をクリックして、一度「形状の再読み込み」をクリックします。右上にある「形状パレットの選択」で先ほど格納した「Olympic Sports」を選びます。
「パレットの割り当て」をクリック、続いて「適用」をクリックします。
すると、自動的に競技とアイコンがマッチングされます!!
実際に作った時は、お題のVizと見比べながらひとつずつ競技とアイコンを地道にマッチングさせていたのですが…
Xで「割り当てを使ったら一発でいけました」とつぶやいていた方がおられたのでやってみました。一発でいけます!
おそらく、出題者の方が画像ファイルの名前とかをきれいに整理してくれているおかげだと思います。親切すぎます。そして、準備って大事…
メダルを整形する
この状態では、外側の「○」がないので、円グラフを作って重ねます。
「行」にもうひとつ[Daily Medal Winners (カウント)]を入れます。
下に上下が逆になった(下から上の積み上げ)同じグラフができます。
下の方のグラフの「マーク」で「円」をクリックします。続いて「色」をクリックして「枠線」で薄いグレー(私の場合一番右下)を選びます。
下側のグラフの軸を右クリックして「二重軸」を選びます。
右側の軸を右クリックして「軸の同期」を選びます。
これで「○」の中に競技のアイコンが入ったメダルの完成です。
この状態だと、アイコンが「○」の下になっていて見えないので、「行」にある2つの[Daily Medal Winners (カウント)]の左右を入れ替えます。
そうすると、軸が元通り(上から下への積み上げ)に戻ってしまうので、もう一度軸を反対にします。
ここからは細かい調整になるので、1日当たりのメダル数が一番多いUSAに絞って作業していきます。
[Country]を「フィルター」に入れて「USA」だけにします。
メダルに色をつける
「円」の方の「マーク」の「色」に[Medal]を入れます。
お題を参考にしながらそれぞれのメダルの色を変更します。
(金メダル:#f6e4a5 | 銀メダル:#d8dadb | 銅メダル:#e7c2a9)
「マーク」の「サイズ」で大きさを整えます。
これでメダルは完成です。
4.軸を整える
今回のお題は、個人的には軸がポイントだったなぁと思っています。
メダル獲得のない日でも表示する必要があります。USAはメダルを獲得していない日がないのと、要件に説明があったとおり1日当たりのメダル獲得数が一番多いので、一見この状態でいけているように見えるのですが。
フィルターを「Albania」にしてみると…メダル獲得日が2日しかないですし、1日あたりの獲得数も1個なので、スカスカです。
どの国を選んでも、横に16日、上詰めの状態にする必要があります。
X軸を整える
データのない日を表示する方法はTableauのデフォルト機能で簡単にできます。
まずは、「列」にある[Day]を右クリックして「不連続」(青色)にします。続いて、メニューバーの「分析」をクリックして「表のレイアウト」で「空の列を表示」をクリックすると、データのない日も表示されます。
※「連続」(緑色)だとうまくいかなかったので不連続にしてみたらうまくいきました。なぜかは分からないので調べてみます。分からないなりにこうやって試行錯誤しているとうまくいくことがあり、それが次に同じようなケースに当たった時の発想の糸口になったりします。それがWOWの醍醐味のひとつです!
お題をよく見ると、X軸が上側にあるので、移動させます。
メニューバーの「分析」をクリックして「表のレイアウト」を開きます。
下の方にある「垂直の軸がある場合は~」のチェックを外して「OK」をクリックします。すると、軸が上に移ります。
軸の上にある「Day」の文字を右クリックして「列フィールドラベルの非表示」をクリックして消します。
Y軸を整える
ここは私の場合、最も手っ取り早い方法を選びました。
一番1日当たりのメダル数が最も多いのがUSAでその数が18個なので、シンプルに軸をその数に合わせて固定しました。
左右どちらかの軸を右クリックし「範囲」で「カスタム」を選びます。「終了時の固定」を「20」にします。ラベルを下につけるので少し余裕を持たせました。
最後に左側の軸を右クリックし「ヘッダーの表示」のチェックを外して軸を非表示にします。
スカスカだった「Albania」も整いました。
5.見た目を整える
調整しやすいように、どこかメダルをたくさん獲得している国でフィルターします。
※以下画面はChinaです。
線を整える
線をすべて消します。
メニューバーの「書式設定」をクリックし「枠線」を選びます。「シート」のタブで「行の境界線」と「列の境界線」をすべて「なし」にします。
つづいて、左側に表示されている書式設定メニューの上にある「線」(右端の三本線のマーク)をクリックし「シート」「行」「列」のすべてのタブで「グリッド線」「ゼロ ライン」「軸線」をすべて「なし」にします。
※「線」の場合、なぜか「シート」のタブですべて「なし」にしても「行」と「列」のタブが「なし」にはならないので注意
メダルの順番を並び替える
「すべて」の「マーク」にある[Medal]を右クリックし「並べ替え」を選びます。「並べ替え」で「手動」を選択し、上から順番に「Gold→Silver→Bronze」とします。
ここで重要なのは「マーク」に並んでいるデータの順番です。例えば[Event]の下に[Medal]があると、”Event順にMedal順”で並びます。
今回は、Eventに関係なくMedalを並べ替えたいので、[Medal]が一番上にくるようにします。
ラベルをつける
一番下にメダルの合計値を表示する必要があります。
本来なら、一番最後のメダルにだけラベルをつけるのがスマートなんだと思いますが、究極のズボラ方式を見つけました。
「何となくできっちゃった」というのがTableauの醍醐味でもあるので、正攻法と2パターン書きます。
<ズボラ方式>
ラベル用の計算式をつくります。
「計算フィールド」を作成し[Label_Total number of Medal]と名付けます。
※縦一列([County]と[Day]別)のメダルの数
//Label_Total number of Medal
{ FIXED [Country],[Day] : COUNT([Daily Medal Winners])}
「マーク」で「円」の「ラベル」に[Label_Total number of Medal]を入れます。
すると一番下にだけメダルの合計数が表示されます。
実はこれ、本当はすべてのメダルに同じ数字がラベリングされているんですが、表示が重なっているので一番下しか表示されていないだけなんです。
ラベルの位置を横にずらしてみると、こんな感じです。
<正攻法>
「計算フィールド」を作成し[Label_Total number of Medal_2]と名付けます。
※「Index=1」の場合にメダル数の合計
//Label_Total number of Medal_
IF INDEX()=1
THEN total(COUNT([Daily Medal Winners]))
END
「マーク」で「円」の「ラベル」に[Label_Total number of Medal_2]を入れます。
「ラベル」に入れた[Label_Total number of Medal_2]を右クリックして「表計算の編集」を選び、以下の通り設定します。
次を使用して計算:特定のディメンション
チェックボックス:「Day」「County」「Event]「Event Detail」「Medal」のすべてにチェック
★重要★ チェックボックスの中は、上から「Day→Medal→Event」の順番になるように調整。ここを並べ替えないと一番下が「Index=1」にならず思った場所にラベルが表示されない。
実行レベル:最も深い
再開間隔:Day
X軸とラベルのフォントサイズを整えます。
ツールヒントを整える
「すべて」の「マーク」の「ツールヒント」に[Athlete][Notes]を入れます。
続けて「ツールヒント」をクリックします。
お手本Vizを見ながら、スペースや文字の大きさ、太さ等を調整します。
※「Country」だけ少し大きめ
※上の2段は太字
//ツールヒント
<Country>
<Day> | <Event> | <Medal>
<Event Detail>
<属性(Athlete)> <属性(Notes)>
これは好みだと思うのですが、ツールヒント上で「保持」や「除外」といったデータ操作ができてしまうので、私の場合「コマンドボタンを含める」のチェックを外すようにしています。
最後にシート名を変更します。
私の場合、「Medals」にしました。
6.ダッシュボードの作成
ダッシュボードにレイアウトしていきます。
「サイズ」で「固定サイズ」を選び、要件どおり幅1000×高さ800にします。
今回は、タイトル+フィルターとメダルのグラフの2段構成なので、まず「オブジェクト」から「垂直コンテナ」を選びます。
「垂直コンテナ」に[Medals]を配置します。右側に配置される不要な情報はコンテナごと削除します。
左上に「Medals」とシートのタイトルが表示されているので、右クリックをし「タイトルを非表示」を選択して、シートタイトルを消します。
水平コンテナを整える
一番上の段には、タイトルとグレーの線、フィルターの3つの要素が横に並んでいるので、水平コンテナの中にこの3つの要素をいれていきます。
「垂直コンテナ」の中に「水平コンテナ」を入れます。
その「水平コンテナ」に「テキスト」を配置して、タイトルを入力し大きさや太さを整えます。
続けて、「水平コンテナ」で「テキスト」(タイトル)の右横に「空白」を配置します。
これは、何気にタイトルとフィルターの間にうっすらとあるグレーの線として使います。(後から整えるので今はこのままで)
フィルターは、この段階では表示されていないので追加します。
メニューバーの「分析」をクリックし「フィルター」から「Country」を選びます。すると右側に国名が羅列する形でフィルターが追加されます。
フィルターをクリックすると表示されるグレーのタブの一番下にある「▼」(その他オプション)をクリックし「単一値(ドロップダウン)」を選ぶと一つのデータしか選べないドロップダウンリスト形式になります。
これを「水平コンテナ」の一番右端に配置します。
グレーの線をつくる
最後にグレーの線を作ります。
タイトルとフィルターに間にある「空白」を選択して、「レイアウト」タブで以下の通り変更します。
・バックグラウンド:薄いグレー
・外部パディング:上下左右すべて「0」
これで薄いグレーの箱ができると思います。最後に、その薄いグレーの箱のその他オプションで「幅の編集」をクリックし「1ピクセル」を設定します。
するとグレーの幅が細くなって線になります(線のようにみえる)。
最後、全体のバランスを整えて、ダッシュボードの名前を「WOW2024 W37」に変更します。
これで完成です。
最後に、せっかくなのでフィルターで「Japan」を選んでおきました。
Tableau Publicにパブリッシュしたら、WOWのトラッカーに登録するのも忘れずに!
▼WOWトラッカー
https://workout-wednesday.com/track-submission/