pillowsのライブのセットリストをネットワーク分析で可視化してみた話
- ライブに行ったとき、「次の曲はなんだろうな』「この曲のあとにあの曲は反則」とかセットリストで一喜一憂しますよね?
- セットリストの曲順のネットワークグラフ書いたら、ライブで演奏される曲のつながりが分かるのでは?と思い、セットリストのネットワーク分析をやってみることにした
- という訳で、大好きなpillowsのセットリストで試ししてみました
- ネットワーク分析の実装はPythonのnetworkxとRのigrahとOSSのcytoscapeをつかいました
- 同じネットワーク分析を別々の実装で行いました
対象データ
- 下記のライブのセットリストを対象とした
個人的に好きなのは、
CHEMICAL BUMP SHOW !!
でした。the pillows TOUR 2013 "LOSTMAN GO TO CITY" SUMMER SONIC 2013 the pillows fanclub live! TRIAL TOUR Energiia Tour HORN AGAIN TOUR Movement Tour CHEMICAL BUMP SHOW !! SUMMER SONIC 2010 the pillows OOPARTS TOUR@東京・JCBホール(2/21)
データ構造は下記な感じ
before,after Nan,White Ash White Ash,NO SELF CONTROL NO SELF CONTROL,Crazy Sunshine Crazy Sunshine,Skin heaven
分析方針
1曲目→2曲目
・2曲目→3曲目
というようにネットワークを作成- アンコールなどは、
本編最後の曲→アンコール1曲目
とした
- アンコールなどは、
python(networkx)での実装
以下で終わり
import networkx as nx import os import matplotlib.pyplot as plt os.chdir("/path/to/Data/pillows") G = nx.read_edgelist("pillows.csv", delimiter=',', nodetype=str) nx.draw(G) plt.show()
- 結果
- 見にくいなー。なんかオプションあるのかな?
- 文字化けはご愛嬌ということで
R(igraph)での実装
以下で終わり
#install.packages("igraph") library(igraph) d <- read.csv("pillows.csv") g <- graph.data.frame(d, directed = FALSE) # tkplot(g) eb <- edge.betweenness.community(g) V(g)$color <- eb$membership tkplot(g, vertex.size=12, vertex.label=V(g)$name, layout=layout.fruchterman.reingold) rw <- walktrap.community(g) V(g)$color <- rw$membership tkplot(g, vertex.size=12, vertex.label=V(g)$name, layout=layout.fruchterman.reingold)
結果(tkplot)
- walktrapでの、ネットワーク分類で色分けしてます
- Rの方だと、コミュニティの抽出も簡単
cytoscapeでの実装
- もはや、実装というか、CSVの読み込みというか・・・
- 結果
- 何もしてませんが。。。