
Tableauでクリスマスツリー作ってみた(#WOW2024 Week 50)
簡単な自己紹介
はじめまして!
現在DATA Saber Bridge 3rdに挑戦しています、たいちろうです!
今まで業務以外でTableauをほとんど使ってこなかったのですが、DATA Saberを皮切りに色々なことに取り組もうと思います!
Viz投稿
情報発信
ブログ投稿
今回はWOW(Workout Wednesday)に挑戦したので解説記事を書いてみました
ガッツリネタバレになりますので、まだ問題を見たことない方は是非チャレンジしてみてください!
問題はこちら:#WOW2024 Week 50: Can you build a Christmas tree?
解説
作りたいもの
完成形を見ていただくと今後がよりイメージしやすいと思いますので、
まずは下をご覧ください

準備
まずTableauを開く前に、今回使用する形状をTableauに読み込ませましょう
形状のダウンロード:https://drive.google.com/file/d/1NUQvOegsWuYBkRAeMZu3xHcxDkJvEDUY/view
エクスプローラーから「マイTableauリポジトリ>形状>」に接続し、新たなフォルダを作成
作成したフォルダにダウンロードした形状を格納
Viz作成
今回はデータソースを使わないでVizを作る、珍しい問題となっております。
では、いよいよTableauを開いてみましょう
今回はデータを使わないのですが、Tableauの仕様上データソースには繋ぐ必要があります
何でもよいのでデータソースに繋ぎましょう
(私はSample Superstoreに繋いでいます)
1. 列シェルフをダブルクリックして「MIN(1)」と入力

2. 形状からornamentを選択

3. 列にある「集計(MIN(1))」を複製して右に配置
(Ctrlを押しながら列の右にドラッグ&ドロップ)
4. レイアウト調整
☑ ヘッダーの非表示
☑ サイズ調整
☑ 書式設定で余分な線を削除

これで半分は完成です!
あとは作成したシートを複製して以下を作りましょう
・オーナメントが3~9つのシート
・オーナメントを星に変更したシート
(星はオーナメントと同時にダウンロードされているはずです)
こうして合計9つのシートができました!

あとは新しくダッシュボードを作成してワークシートを配置していくのですが、要件として以下があります
シートのサイズは1000×1200
空白オブジェクトは1つのみ使用可能
浮動はNG
ツリーの色は以下の通り
グリーン:#3e8439
ブラウン:#884e1c
シートサイズや色はよいのですが、浮動NGや空白オブジェクトを1つしか使えないというところがミソですよね…ダッシュボードのレイアウトをどう調整するのか…
また、WOWのページを見た方なら気づく人もいるかと思いますが、明らかに星とオーナメントがワークシートなので空白はツリーの花壇部分にしか使えません

こちらを念頭に配置をしていきましょう
まずは垂直コンテナをダッシュボードに配置し、その中に作ったワークシートをどんどん配置していきます

タイトルを非表示にし、背景をグリーン・ブラウンで塗るとこんな感じになります↓

私はここで解法のカギを思いついたのですが、微妙に白い余白のようなものがありますね
これは、Tableauはワークシートを配置すると自動で外部パディングが4ずつつくことに由来します
(外部パディングは「レイアウト」タブから確認可能)

つまり、バックグラウンドカラーを指定しても、外部パディングを指定すれば余白を生み出せるわけです。
これを利用してこんなことをしてみましょう

外部パディングを左右に432ずつ取ってみました
するとなんということでしょう、てっぺんのスターが正方形になったではありませんか
ちなみに432とした理由については下の画像をご覧ください。

こちらは垂直コンテナの均等配置をオンにした状態なのですが、
1つのワークシートの大きさは以下の通りです
・幅:984
・高さ119
高さを約120と見ると、横の長さを120にするためには下の式を計算します
(984 - 120) / 2 = 432
(なんとなく正方形の方がキレイかなと思って横の長さも勝手に120に設定しています)
次に、最下部の9つオーナメントの外部パディングを0にしたいとすると、てっぺんの外部パディングからいくつずつ設定値を減らしていけばよいか計算できます。
432 - 8x = 0
⇔ x = 432 / 8 = 54
ということで下記のように左右の外部パディングを設定しましょう
2段目: 432 - 54 = 378
3段目: 378 - 54 = 324
4段目: 324 - 54 = 270
5段目: 270 - 54 = 216
6段目: 216 - 54 = 162
7段目: 162 - 54 = 108
8段目: 108 - 54 = 54
(9段目は 54 - 54 = 0)
(花壇部分はてっぺんと同じ432を設定)
これで立派なクリスマスツリーが完成しました!

少々細かいですが、そのほかに行った調整としては
ワークシートの自動調整機能で「ビュー全体」を指定
ツールヒントの非表示
(ダッシュボードからワークシートを選択して「Altを押しながらW→O→Sと押し、Enterキーを押す」と非表示にできます)
あたりです
余談ですが、ツールヒントの非表示のショートカットなど、覚えておくと作業効率がちょっぴりあがりそうなショートカットもnoteでご紹介できればと思います
(次の記事のネタが決まりました笑)
以上で解説は終了です
皆様もクリスマスに向けたVizを作ってみてはいかがでしょうか!