1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

夏フェスデータで学ぶ Tableau ハンズオン — 「夏フェスの盛り上げ上手」を探す

1
Posted at

夏フェス、行きますか? 私は滋賀出身なので、夏の終わりといえば INAZUMA ROCK FES. です。琵琶湖のほとり、草津の烏丸半島。西川貴教さんが「滋賀を盛り上げる」と言って始めたフェスが、気づけば 10 年以上続いています。

推し活ユーザー会 は、「推しのデータを集めて、みんなで可視化する」Tableau コミュニティです。この記事は、第 6 回ハンズオン「あの夏フェス、何がすごかった?」の解説資料です。

この記事では、2015〜2025 年の日本の夏フェス 35 種類・360 開催分のデータ を使って、Tableau でのデータ可視化を体験します。

対象データ
夏フェス 35 種類・360 開催分
出演アーティスト 206 組
出演記録 553 件
セットリスト 2,109 曲分

開催地・会場・開催日数、アーティストの活動年数やジャンル、楽曲の発売年やアンコール情報まで入っています。

はじめに

この記事は 【第6回 推し活ユーザー会】あの夏フェス、何がすごかった?~出演者とセットリストをデータで見てみよう~🎤 のハンズオン資料です。
2026 年 8 月 23 日(日)20:00〜21:30・オンライン・参加無料。見るだけの参加も大歓迎です。
CSV ファイルは Google Drive で事前配布します。

過去 2 回のハンズオンでは、夏アニメデータIF / COUNTD / LOD を、花火大会データで地図・ランキング・ダッシュボードを扱いました。今回はその続きですが、この記事から読み始めても大丈夫です。

作るグラフは 3 枚だけ です。1 枚ずつ作っていきましょう!

作るもの 使う機能
グラフ ① 日本地図 地理的役割・COUNTD・連続 / 不連続
グラフ ② 出演回数ランキング COUNTD・降順ソート・色
グラフ ③ 開催年 × 開催月のヒートマップ ディメンション・四角マーク

この 3 枚を最後にダッシュボードへまとめます。

QUEST 1 ▶ 使うデータを確認する

CSV は 4 ファイルあります。すべて イベントID で紐づきます

ファイル 1 行 = 行数
event.csv 1 フェス × 1 開催年(× 1 会場) 360
event_artist.csv 1 公演 × 1 アーティスト 553
setlist.csv 1 曲 2,109
weather.csv 1 開催 × 1 日 810

データについて

このデータは、Wikipedia・各フェス公式サイト・setlist.fm・Open-Meteo などの公開情報から収集したものです。「推測で埋めない・不明は空欄」 を徹底しているので、空欄もそれなりにあります。それも含めて「実データの練習」だと思って触ってみてください。

気象データは Open-Meteo(CC-BY 4.0)/ Copernicus C3S・ECMWF ERA5 を利用しています。

各ファイルの列は下のアコーディオンを開くと確認できます。まずは event.csv だけ見れば QUEST 2 に進めます。

event.csv — フェスの「開催台帳」(14 列・360 行)

1 フェス × 1 開催年 = 1 行。2015〜2025 年の 11 年ぶんで 360 行あります。

列名 内容
イベントID 4 ファイルを結合するキー IRF-2025
フェス名 フェスの名前(年号は含まない) INAZUMA ROCK FES.
開催年 2015〜2025 2025
開始日 / 終了日 / 開催日数 会期 2025-09-20 / 2025-09-21 / 2
開催月 開始日の月 9
都道府県 / 地域 / 会場 開催地(地図で使います 滋賀県 / 関西 /
烏丸半島芝生広場
フェスカテゴリ ロック / 都市型 /
アイドル / 複合
ロック
開催状況 開催 / 中止 /
延期 / オンライン
開催

イベントID{フェス略号}-{年} という形です。サマソニのように東京・大阪で分かれるフェスは SS-2025-TYO / SS-2025-OSA と会場コードが付きます。

中止の年も行があります。
2020 年は 33 行のうち 中止 23・オンライン 6・延期 1、開催できたのは 3 件。この「中止という事実」が行として残っているので、コロナ禍の 2 年間をデータで追いかけられます。
逆に、もともと予定がなかった年は行を作っていません(中止と非開催は別物、という設計です)。

event_artist.csv — 誰が出たか(15 列・553 行)

1 公演 × 1 アーティスト = 1 行。553 行、ユニークなアーティストは 206 組 です。

列名 内容
イベントID event.csv と結合するキー KD-2025
アーティスト名 表記ゆれを名寄せ済み 10-FEET
アーティスト区分 国内 / 海外 国内
ジャンル ロック / ポップス /
ヒップホップ / アイドル /
エレクトロニック / その他
ロック
活動開始年 / 活動年数 活動を始めた年と、
出演時点での活動年数
1997 / 28
出身都道府県 出身地(海外勢は空欄) 京都府
性別構成 男性 / 女性 / 混成 男性
メンバー数 2026 年時点の正規メンバー数 3
ヘッドライナー メインステージのトリなら true true

活動年数 は「開催年活動開始年」です。同じアーティストでも、出た年によって値が変わります(10-FEET は 2015 年なら 18、2025 年なら 28)。

全 35 フェスぶんの出演者を網羅しているわけではなく、各公演のヘッドライナー+主要出演者 を収録しています。「サマソニに出た全アーティスト」ではないので、そこだけ注意してください。

setlist.csv — 何を演奏したか(13 列・2,109 行)

1 曲 = 1 行。2,109 曲 / 138 セット ぶんあります。

列名 内容
イベントID 結合キー FRF-2015
アーティスト名 event_artist.csv と同じ表記 Foo Fighters
演奏順 1 から始まる通し番号 1
曲名 曲のタイトル Everlong
リリース年 その曲が世に出た年 1997
曲の経過年数 開催年リリース年
= 曲の「年齢」
18
リリース年代 10 年単位(2013 → 2010) 1990
アルバム /
シングルフラグ
初出アルバムと、
シングル表題曲かどうか
The Colour and
the Shape / true
アンコール アンコールで演奏されたら true false

セットリストは 8 フェスぶんです。
FUJI ROCK / SUMMER SONIC / ROCK IN JAPAN / RISING SUN / SWEET LOVE SHOWER / MONSTER baSH / 京都大作戦 / INAZUMA ROCK の 8 フェス、しかもヘッドライナー中心。他のフェスは setlist.csv には入っていません。

また、出典が setlist.fm なので 曲名にローマ字表記が混ざります(RADWIMPS の「前前前世」は Zenzenzense (movie ver.))。実データあるあるです。

weather.csv — その日、暑かったのか(23 列・810 行)

1 開催 × 1 日 = 1 行。810 行です。

列名 内容
日付 / 開催日目 開催日と、その開催の何日目か
天気 / 天気コード 快晴 / 晴れ / 曇り /
雨 / 雷雨 …
最高気温 / 最低気温 /
体感最高気温
降水量mm / 降水時間h /
最大風速 / 日射量MJ
雨フェス度・快適度の目安
真夏日 / 猛暑日 / 熱帯夜 最高 30℃ 以上 /
35℃ 以上 /
最低 25℃ 以上

気象データは ERA5 という「再解析値」 で、約 9〜11km 四方の格子の推計値です。その日その会場の実測ではありません。特に苗場や水上高原のような山の会場は実際とずれますし、夕立のような短時間の雨は捉えられません
天気 列で「弱い霧雨」が多めに出るのはこのためです。気温は比較的信頼できて、天気コードは参考程度 と思ってください。

QUEST 2 ▶ CSV を Tableau に読み込む

① CSV をダウンロードして Tableau で開く

  1. Google Drive から 4 ファイルをダウンロードする
  2. Tableau Desktop を起動し、左の「接続」パネルから 「テキストファイル」 を選択
  3. event.csv を選ぶ → データソースページが開く

データソースページ。キャンバスに event.csv だけが置かれた初期状態

左の「ファイル」欄に 4 つの CSV が並び、キャンバスには event.csv だけが置かれた状態です。ここに残りを足していきます。

② リレーションシップで 4 ファイルを結合する

  1. 左の接続パネルから残り 3 ファイルをキャンバスにドラッグ
  2. 結合キーはすべて イベントID = イベントID
  3. event.csv を中心に、3 本の線が伸びる形にする

データソースページ。event.csv を中心に3本のリレーションシップ線が伸びている

JOIN ではなくリレーションシップを使ってください。

JOIN にすると、1 つのフェスに対してセットリストや天気の行数ぶん数字が膨らんでしまいます。リレーションシップなら、Tableau がそのグラフで使っている列に応じて必要なテーブルだけを結合してくれるので、この膨張が起きません。

③ 都道府県に「地理的役割」を設定する

次のグラフで地図を描くので、Tableau に「この列は場所を表しています」と教えておきます。

event.csv都道府県 を右クリック →「地理的役割」→「都道府県/州」を選びます。

都道府県を右クリックして地理的役割を「都道府県/州」に設定する

都道府県 のアイコンが Abc から地球儀に変われば OK です。

QUEST 3 ▶【グラフ ①】日本地図で「夏フェスのある県」を見る

① 地図を出す

左のデータペインで 都道府県 をダブルクリック。それだけで日本地図が出ます。緯度・経度の列は CSV に入っていませんが、Tableau が自動で「経度(生成)」「緯度(生成)」を割り当ててくれます。

まず、開催の多さで塗り分けてみます。

  1. イベントIDマークカードの「色」 へドラッグ
  2. 置いたフィールドを右クリック →「メジャー」→「カウント(個別)

開催回数で塗り分けた日本地図。凡例は1〜41の連続グラデーション

濃淡のグラデーションで日本地図が塗られました。凡例は 1〜41。いちばん濃いのは 大阪府の 41 回(東京都 38・千葉県 35 と続きます)。

もっと知りたい人へ:「カウント(個別)」は何をしているのか

ここでいきなり出てきた カウント(個別)= COUNTD が、この記事でいちばん大事な機能です。少し丁寧に見ておきます。

event.csv1 行 = 1 フェス × 1 開催年。だから大阪府には、こんな行が入っています。

イベントID フェス名 開催年
SS-2015-OSA SUMMER SONIC 2015
SS-2016-OSA SUMMER SONIC 2016
RB-2015 RUSH BALL 2015
RB-2016 RUSH BALL 2016

イベントID1 行 1 行がすべて違う値SS-2015-OSASS-2016-OSA は別物)。この列を数えると「大阪府で何回フェスが開かれたか」になります。

そして Tableau には数え方が 2 つあります。

選ぶもの 意味 大阪府の結果
カウント 行の数をそのまま数える 41
カウント(個別) 重複を除いたユニークな値の数を数える 41

イベントID はもともと重複が無いので、今回はどちらも 41 で同じです。ではなぜ カウント(個別) を選ぶのか——次の②で フェス名 に差し替えたときに、差が出るからです。

「メジャー」と「カウント(個別)」の場所
イベントID は文字列(Abc アイコン)なので、色に置くと最初は「属性」や「カウント」になります。右クリック →「メジャー」を開くと、その中に「カウント」「カウント(個別)」が並んでいます。「メジャー」は「この列を数字として集計する」という意味だと思ってください。

② 「開催回数」から「フェスの種類数」へ

でもこの地図、同じフェスが 11 年ぶん数えられています。「その県にいくつ"種類"のフェスがあるか」を見たいときは、色に置くフィールドを変えます。

  1. 色に置いた イベントIDフェス名 に差し替える(同じく「カウント(個別)」)
  2. 色のフィールドを右クリック →「不連続」を選ぶ

色のフィールドを右クリックして「不連続」を選ぶメニュー

「連続」のままだと濃淡のグラデーションですが、「不連続」にすると 1・2・3・4・6 がそれぞれ別の色になります。数が少ないときは、こちらのほうが県ごとの違いを読み取りやすくなります。

フェスの種類数で色分けした日本地図。凡例は1・2・3・4・6

イベントIDフェス名COUNTD(カウント(個別)) ですが、数えているものが違います。event.csv は「フェス × 年」で 1 行なので、COUNTD([イベントID])開催回数COUNTD([フェス名])フェスの種類数 になります。

QUEST 4 ▶【グラフ ②】夏フェスの盛り上げ上手を探す

「一番いろんな夏フェスを盛り上げてきたのは誰か」 を調べます。

① 出演回数を数える — COUNTD

新しいワークシートを開きます(画面左下の ⊞ ボタン)。

  1. アーティスト名行シェルフ へドラッグ
  2. イベントID列シェルフ へドラッグし、右クリック →「メジャー」→「カウント(個別)
  3. ツールバーの 降順ソート をクリック
  4. ジャンルマークカードの「色」 へドラッグ

ここでも COUNTD です。同じイベントに複数日出演している行があるので、素の COUNT だと二重に数えてしまいます。

アーティスト別 出演公演数ランキングの棒グラフ

10-FEET が 50 公演。2 位の倍です。 京都大作戦の主催者なので自分のフェスに毎年出るのは当然として、それにしても多い。

色を見ると、上位はほぼ黄色(ロック)で埋まっています。そのなかで Vaundy が緑(ポップス)、ももいろクローバーZ が青(アイドル) と、飛び地のように混ざっているのが分かります。

② 「何フェスに出たか」も並べる

でも「50 公演」は、同じフェスに 10 回出ても 50 になります。「いくつの"種類"のフェスを回ったか」 も見てみましょう。

行シェルフアーティスト名 の右隣に、次の 2 つを カウント(個別) で置きます。

  1. イベントID(=出た公演の数)
  2. フェス名(=回ったフェスの種類数)

行に置いたメジャーは棒にならず、棒の左に数字の列として並びます。ランキングを崩さずに 2 つの数字を読み比べられる形です。

出演公演数と出演フェス数を数字の列として並べたランキング

QUEST 5 ▶【グラフ ③】「夏フェス」は夏なのか

① 年 × 月のヒートマップを作る

新しいワークシートを開きます。

  1. 開催月列シェルフ へドラッグし、右クリック →「ディメンション
  2. 開催年行シェルフ へドラッグし、右クリック →「ディメンション
  3. マークカードのタイプを「四角」に変更
  4. イベントIDマークカードの「色」 へドラッグし、右クリック →「メジャー」→「カウント(個別)

開催年 × 開催月のヒートマップ。縦に2015〜2025年、横に2・5〜11月が並ぶ

11 行 × 8 列のマス目ができました。色の凡例は 1〜13。いちばん濃いマスは 2015 年・2017 年・2019 年の 8 月で、それぞれ 13 開催 です。

開催年開催月 も数値の列なので、そのままドラッグすると SUM(開催年) として 足し算 されてしまいます(2015 + 2016 + … になってしまう)。「ディメンション」に変えると、年と月が「区切り」として扱われ、マス目が並びます。

横軸に注目してください。3 と 4 の列がありません。 3〜4 月に開催された夏フェスが 1 つも無いので、Tableau は列を作らないのです。QUEST 3 の地図で「凡例に 5 が無い」と同じ話で、存在しない値は軸にも現れません

QUEST 6 ▶ ダッシュボードにまとめる

作った 3 枚を 1 枚にまとめます。

  1. 画面下部の ダッシュボード タブを開く
  2. 日本地図(グラフ ①)を左に、縦いっぱいに配置
  3. 出演回数ランキング(グラフ ②)を右上に配置
  4. 年 × 月のヒートマップ(グラフ ③)を右下に配置
  5. 地図とヒートマップを選択し、右上の 絞り込みボタン(漏斗のアイコン)をクリック

3枚のシートを並べた完成ダッシュボード

完成です 🎤

日本列島は縦に長いので、地図は左半分を縦に使う とちょうど収まります。右側に「誰が」(ランキング)と「いつ」(ヒートマップ)を積むと、左が場所・右が中身という読み順になります。

地図で県をクリックすると、右の 2 枚が連動して絞り込まれます。 「京都府」をクリックすれば京都大作戦だけになり、ランキングの一番上に 10-FEET が残る。ヒートマップは 7 月の 1 列だけが色づきます。

まとめ

最初の問いに戻ります。イナズマロックは、全国的に見てどんなフェスだったのか。

  • 11 年間、一度も欠けずにデータに載っている。 2020 年はオンライン、2021 年は中止。それでも イベントIDIRF-2015 から IRF-2025 まで途切れずに並びます。会場も 11 年間ずっと烏丸半島芝生広場のまま。
  • 9 月開催は「遅い」わけではなかった。 ヒートマップで色がつくのは主に 6〜9 月。9 月の列はどの年も埋まっていて、夏フェスの季節の一角をしっかり占めています。イナズマロックは 11 年間ずっとその 9 月にいました(2023 年だけ 10 月)。
  • 滋賀県の中心はイナズマロックフェス。 地図で色がついたのは 25 都道府県だけ。滋賀県はそのうちの「1 フェス」の県で、11 年間その 1 つを守り続けてきたのがイナズマロックです。

グラフアイデア集

ハンズオンでは作らなかったグラフのアイデアです。同じ 4 ファイルで、まだまだ違う切り口が試せます。余裕がある方は、下のアコーディオンを開いて眺めてみてください。

グラフアイデア集 — 同じ 4 ファイルで試せる 25 の切り口

出演者編

event_artist.csv を使う

グラフ
出演者の平均活動年数の推移(2015 年 14.3 年 → 2025 年 20.0 年) 開催年(ディメンション) AVG(活動年数)
出演フェス数 × 出演公演数の散布図 COUNTD(フェス名) COUNTD(イベントID)・詳細=アーティスト名
「常連フラグ」で色分け { FIXED [アーティスト名] : COUNTD([フェス名]) } >= 5 の計算フィールド 好きなグラフの色へ
ジャンル構成の 11 年推移(100% 積み上げ) 開催年 CNT(アーティスト名)・色=ジャンル
国内 / 海外比率の推移 開催年 CNT・色=アーティスト区分
アーティスト出身地マップ 出身都道府県(要・地理的役割) サイズ=COUNTD(アーティスト名)
「地元凱旋」判定 出身都道府県 = 開催都道府県 の計算フィールド フェス名
性別構成 × フェスカテゴリ フェスカテゴリ CNT・色=性別構成
ヘッドライナー常連ランキング COUNTD(イベントID) アーティスト名(ヘッドライナー=true で絞る)

セットリスト編

setlist.csv を使う

グラフ
曲の経過年数のヒストグラム(平均 10.2 年・37% が 5 年未満) 曲の経過年数(ビン・サイズ5) COUNT(曲名)
リリース年代の構成比 開催年 CNT・色=リリース年代
セット中の位置と曲の年齢 演奏順 AVG(曲の経過年数)
アンコール曲は古いのか アンコール AVG(曲の経過年数)
シングル曲率ランキング AVG(シングルフラグの 0/1 化) アーティスト名
フェス別「新曲率」 フェス名 経過年数 3 年未満の曲の割合
1 セットあたりの曲数 フェス名 COUNT(曲名) / COUNTD(イベントID)

開催・気象編

event.csv / weather.csv を使う

グラフ
フェス別の平均最高気温ランキング フェス名 AVG(最高気温)
平均最高気温の推移 開催年 AVG(最高気温)
開催回数マップ(本編①の色違い) 都道府県 色=COUNTD(イベントID)
開催日数の推移 開催年 AVG(開催日数)
中止率の推移 開催年 中止行の割合
地域別のフェス数 地域 COUNTD(フェス名)
雨に降られたフェスランキング SUM(降水量mm) フェス名
猛暑日カレンダー 日付(月日) フェス名・色=猛暑日
フェスの「継続年数」ランキング COUNTD(開催年) フェス名

データがあれば、夏フェス選びはもっと楽しくなる! 🎤

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?