Taylor Swiftの曲は、時代を越えてどう歌い継がれたか

Taylor Swiftの曲は、時代を越えてどう歌い継がれたか — 最新作78%から16%へ

公開日: 2026-09-06
カテゴリ: MakeoverMonday

今週のお題

今週のデータは、Taylor Swift の6つのツアーのセットリストです。135行 × 5列という、とても小さなデータでした。

列名 内容
Tour ツアー名(6ツアー)
Start Date / End Date ツアーの開始日・終了日
Album その曲が収録されたアルバム(10作品)
Song 曲名(ユニーク97曲)

出典は A Dash of Data「A Data Scientist Breaks Down All 10 Taylor Swift Albums」 です。

6ツアーの規模は次のとおりでした。

ツアー 開始年 選曲数 使われたアルバム数
Fearless Tour 2009 17 2
Speak Now Tour 2011 17 3
The Red Tour 2013 17 3
The 1989 Tour 2015 18 4
Reputation Tour 2018 23 6
The Eras Tour 2023 43 9

「曲名とアルバムとツアー」しかないデータですが、時間軸を2本(ツアーが行われた年/曲が生まれた年)持っている点が面白いところです。この2本のズレを見にいくことにしました。

作成したダッシュボード

https://x.gd/gV5tW

タイトルは「Taylor Swiftの曲は、時代を越えてどう歌い継がれたか」。ダッシュボードは3枚のチャートで構成しています。

  1. エリアチャート(上)— ツアーの選曲は、どの時代のアルバムへ広がったか
  2. パックドバブル(左下)— 何度もツアーに選ばれた曲はどれか
  3. ジッタープロット(右下)— ツアーを重ねても、選ばれ続けた曲はどれか

見えてきたこと

いちばんはっきり出たのは、「ツアーは新譜のお披露目の場ではなくなった」という変化です。

各ツアーで、そのツアーの主役アルバム(最新作)が占めた割合を計算すると次のようになりました。

ツアー 主役アルバム 主役アルバムの曲数 / 全選曲数 割合
Fearless Tour Fearless 11 / 17 64.7%
Speak Now Tour Speak Now 12 / 17 70.6%
The Red Tour Red 13 / 17 76.5%
The 1989 Tour 1989 14 / 18 77.8%
Reputation Tour Reputation 14 / 23 60.9%
The Eras Tour Midnights 7 / 43 16.3%

2015年の The 1989 Tour までは、セットリストの4分の3が最新作でした。それが The Eras Tour では16.3%まで下がります。代わりに使われたアルバムの数が2 → 3 → 3 → 4 → 6 → 9と増え続け、43曲が9作品に散らばりました。ツアーの性格が「新譜のプロモーション」から「キャリア全体の回顧」へ移っている、という読み方ができます。

もうひとつ、繰り返し選ばれる曲はごく一部でした。97曲のうち2ツアー以上に登場したのは22曲だけ。残りの75曲は1回きりです。そのなかで Love Story は6ツアーすべてに入っており、You Belong with Me が5回、We Are Never Ever Getting Back Together が4回と続きます。

工夫した点・こだわり

タイトルを問いの形にした。 3枚のチャートそれぞれに「〜はどれか」「〜広がったか」という問いをタイトルとして置きました。ダッシュボード全体のタイトルも「どう歌い継がれたか」という問いです。読み手が何を探せばいいか迷わないようにする狙いです。

同じ問いを3つの角度から見せた。 エリアチャートは「アルバムの広がり」を面積で、パックドバブルは「繰り返しの回数」を円の大きさで、ジッタープロットは「どのツアーで、何回目の登場か」を位置で表しています。1枚に詰め込まずに分けたのは、Tableau の『視覚的分析のベストプラクティス』にある「数多くのメジャーとディメンションを1つのビューに重ねて表示するのではなく、複数のグラフに分割するべき」という指針に沿った判断です。

色は「識別」ではなく「塊を分ける」ためだけに使った。 バブルとジッターは Song(97曲)を色に置いています。同じ資料には「1つのビューで使用する色と形状の数を7〜10種類に制限することでデータを識別しやすくなる」とあり、97色はその範囲を大きく超えています。ここは意図的な逸脱で、色で曲名を見分けさせるつもりはなく、隣り合う円の境界を見せるためだけに使っています。曲名はラベルとツールチップで読ませる設計です。とはいえベストプラクティスから外れているのは事実なので、Album(10色)を色に、Song をラベルに、という配色も試す価値がありました。

背景を薄いグリーンで統一した。 3枚のワークシートはすべて背景を透過(#00000000)にして、ダッシュボード側の背景色を1枚の面として見せています。グリッド線・ゼロライン・ヘッダーの区切り線もすべて消しました。

使ったTableauの技術・Tips

1. ツアー名を短くする計算フィールド

列ヘッダーが「Fearless Tour」「The Eras Tour」と長くなるので、Tour の末尾から ” Tour” を落としました。

// Tour2
REPLACE([Tour]," Tour","")

ヘッダーには「Fearless」「The Eras」と出ます。ラベルの文字数を削るだけで、狭い列幅でも折り返さずに収まります。

2. 選曲数のカウント

// c.num_of_songs
COUNT([Song])

COUNTD ではなく COUNT です。1行=1ツアーでの1曲なので、行数がそのまま選曲数になります。

3. ジッタープロットは AVG(RANDOM()) を列に置く

右下のチャートは、同じ位置に重なる円をばらけさせるジッタープロットです。作り方はシンプルで、列に AVG(RANDOM()) を追加して連続軸にし、その軸を非表示にするだけです。

列: 年(Start Date) / Tour2 / AVG(random())
行: 累計(c.num_of_songs)

軸の非表示は、軸を右クリック →「ヘッダーの表示」のチェックを外します。.twb 上では該当フィールドの axis に display=false が入ります。

⚠️ 注意点として、RANDOM() はクエリが走るたびに値が引き直されるため、表示を更新すると円の横位置が変わります。配置を固定したい場合は INDEX() や曲名から導いたハッシュ値など、決定的な値を使うほうが安全です。今回は「重なりをほぐす」ことだけが目的なので RANDOM() のままにしました。

4. 累計は「並び順」を明示的に指定する

行に置いた c.num_of_songs は、単なる合計ではなく累計(Running Total)です。ここが今回いちばんの肝でした。

  • 表計算:累計(合計)
  • 特定のディメンション:年(Start Date) → Tour2 の順で指定

並び順をフィールドで明示しておかないと、Tableau は表の並び順(Table Across など)で累計してしまい、ツアーの時系列と一致しません。「Love Story は6ツアー目で累計6」という縦位置は、この並び順指定があって初めて正しく出ます。軸タイトルは「選曲数(曲)累計」に書き換えました。

5. ラベルは「重なったら消す」設定に任せる

97曲すべてにラベルを出すと当然つぶれます。マークラベルの設定で「他のマークと重なる場合にラベルを非表示にする」mark-labels-cull)を有効にすると、重ならない曲だけラベルが残ります。結果として、大きい円=繰り返し選ばれた曲だけが自然に名前を持つという状態が作れました。円の不透明度は70%にして、重なりの濃さで密度が伝わるようにしています。

6. ダッシュボードアクション2本

アクション 動き
フィルター(選択時・選択解除でクリア) エリアチャートで Album を選ぶ → 下2枚がそのアルバムの曲だけになる
ハイライト(Song) バブルで曲を選ぶ → ジッタープロットの同じ曲が光る(エリアチャートは対象から除外)

ハイライトのソースからエリアチャートを除外しているのは、エリアチャートに Song を持たせていないためです。除外しておかないと、意図しない挙動になります。

なお、バブルチャートを選んだ理由は「大量のデータを一度に表示できる」点です。Tableau の『最適なチャート/グラフを選択する方法』でも、バブルチャートは円の大きさや色で大量のデータを一度に見せる用途として紹介されています。97曲を1枚に収めるにはちょうどよい選択でした。

学び・振り返り

データの癖を2つ見つけました。

ひとつ目。The Red Tour の17行のうち1行だけが Speak Now Tour と同じ日付(2011-02-09)になっていました(該当は Fearless 収録の “You Belong with Me”)。残り16行は 2013-03-13 です。エリアチャートの横軸は YEAR(Start Date) なので、この1行のせいで 2011年の Fearless の層が1曲ぶん厚くなっています。元データのゆらぎがそのままチャートの形に出た例で、気づかなければ「Speak Now Tour では Fearless を5曲やった」と読み違えるところでした。

ふたつ目。アルバム名の “1989” は Excel 上で数値として格納されていました(135行中23行)。Tableau は列全体を文字列として解釈してくれたのでそのまま扱えましたが、Python 側で集計したときは intstr が混在してソートでエラーになりました。集計の裏取りをしていなければ気づかないタイプの癖です。

エリアチャートの横軸を連続の年にしたことは、良し悪しがありました。 ツアーとツアーの間(2010年、2012年、2014年…)は実際にはデータのない期間ですが、連続軸だと面が斜めにつながって「その間も何かが続いていた」ように見えます。「アルバムの広がりが年々増していく」という流れは伝わりやすくなった一方で、存在しない期間を描いてしまっているのも事実です。不連続(ディメンション)に切り替えれば正確にはなりますが、今回は流れの見えやすさを優先しました。次に同じ形を作るときは、両方を並べて比べてから決めたいところです。

数字は必ずデータに戻って確かめる。 「最新作78%→16%」も「Love Story が6ツアー全部」も、ダッシュボードを眺めて言えることではなく、元の135行を数え直して確認しました。ビジュアライゼーションは問いを見つける道具で、答えの確定は集計の仕事だと、あらためて感じています。


Tableau Public プロフィール: https://public.tableau.com/app/profile/tamaball38175/vizzes


⚠️ 注記: この記事はAIを活用して生成されています。内容に誤りが含まれる可能性があります。技術的な詳細については公式ドキュメントも合わせてご確認ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です