昔、pixivの出演共起から百合ネットワークを考えたのだが、今回はラブライブ!各話でのキャラ同士の会話回数をカウントして、百合ネットワークがどう変わっているかを見た。
アニメ全13話を視聴して、キャラ同士名前を呼び合っている回数をカウントするのだが、
愛称は可(小泉花陽を「かよちん」、矢澤にこを「にこにー」など)
綾瀬絵里を「生徒会長」、東條希を「副会長」、南ことりを「ミナリンスキー」、矢澤にこを「部長」
「うちで9人や」など不特定多数
は除外した。データは下。
メンバー集めの1〜3話では、高坂穂乃果を中心とした2年生での会話が多いが、4話では小泉花陽がμ'sに入ろうか悩んでいるところに西木野真姫や星空凛があーだこーだ言って1年生回になっていた。
5話ではアイドル研究部の矢澤にこをメンバーに引き入れるためになんやかんやして、6話でメンバー内(東條希と綾瀬絵里を除く)で誰がセンターがいいか議論していた。結局「みんなが歌ってみんながセンター」という高坂穂乃果の案でまるく収まったが、この回がもっともネットワークのエッジ結合率的な推移性が高かった。
その後、綾瀬絵里がダンスうまくて何とかメンバーに引き入れる7, 8回を経て、水着回である合宿では先輩禁止例のため、お互いに名前で呼び合うことにした。この回も会話回数が多かった。
あとは南ことりが転校するとか、高坂穂乃果が勝手にダークサイドに落ちたりと誰得シリアス回を挟んで、3話では誰も集まらなかった学院講堂でリベンジライブして終了。
推移性(Transitivity)はあるノードに近接する任意の2つのノードがエッジを有するとき、統計量が大きくなる。ノード数のネットワークに存在するエッジが、無向ネットワーク内ですべてのノードにつながっていたら統計量が1になる。
各話ごとで推移性をとると、6話のセンターが誰かあれこれ言っていた時が仲の良さが最大で、そのあとは地味に減少しているっぽい。
プロットへのpngの貼り付けはこちらを参照。
library(png) # 適当なところから png を取ってきておく。 pics <- vector("list", 9) j <- 0 for(i in id){ j <- j+1 pics[[j]] <- readPNG(paste("/pngfiles/", i, ".png", sep=""), native=TRUE) } ra <- 1 #原点に近いところが潰れるので拡大したかったけど、等倍でやった。 xy0 <- sapply(pics, dim)[1:2, ] #pixel rownames(xy0) <- c("height", "width") s0 <- 0.004 #拡大縮小率
# anime library(igraph) matraw <- as.matrix(read.csv("clipboard", header=TRUE)) # 生データ # 愚直に matani <- array(0, c(nrow(matraw), ncol(matraw), 13)) # 全13話の時系列カウント colnames(matani) <- colnames(matraw) Matani <- diag(0, 9) colnames(Matani) <- colnames(matraw) for(i in seq(nrow(matraw))){ for(j in seq(ncol(matraw))){ tmp <- as.numeric(strsplit(matraw[i, j], " ")[[1]]) matani[i, j, ] <- tmp Matani[i, j] <- sum(tmp) } } gani <- apply(matani, 3, graph.adjacency, mode="undirected", weighted=TRUE, diag=FALSE) # 全話 g4 <- graph.adjacency(Matani, mode="undirected", weighted=TRUE, diag=FALSE) # 各話 gkakuwa <- apply(matani, 3, graph.adjacency, mode="undirected", weighted=TRUE, diag=FALSE) kakuwa.trans <- sapply(gkakuwa, transitivity) # とかやると一気に統計量が取れる # タイトル一覧 titlelist <- c("叶え!私たちの夢", "アイドルをはじめよう!", "ファーストライブ", "まきりんぱな", "にこ襲来", "センターは誰だ?", "エリーチカ", "やりたいことは", "ワンダーゾーン", "先輩禁止!", "最高のライブ", "ともだち", "μ'sミュージックスタート!") titlelist <- paste("#", seq(titlelist), titlelist) # 推移性(transitivity)のプロット par(mar=c(5.5, 5.5, 4, 2)) plot(kakuwa.trans, type="l", xlab="", ylab="Transitivity", lwd=5, ylim=c(0, 1), xaxt="n", cex.axis=1.6, cex.lab=2) axis(1, seq(titlelist), label=NA) text(seq(titlelist), rep(par()$usr[3], length(titlelist)), titlelist, xpd=TRUE, srt=25, adj=c(1, 2)) lay <- layout.circle(g4) # 円形レイアウトにする library(animation) saveGIF({ for(i in seq(dim(matani)[3])){ hoge <- graph.adjacency(matani[, , i], mode="undirected", weighted=TRUE, diag=FALSE) E(hoge)$width <- E(hoge)$weight E(hoge)$color <- "black" V(hoge)$label <- NA V(hoge)$size <- 0 par(mar=c(1, 0.5, 4, 0.5)) plot(hoge, layout=lay) title(titlelist[i], cex.main=2) lay0 <- lay for(j in seq(pics)){ xleft=lay0[j, 1]*ra - xy0[2, j]/2*s0 ybottom=lay0[j, 2]*ra - xy0[1, j]/2*s0 xright=lay0[j, 1]*ra + xy0[2, j]/2*s0 ytop=lay0[j, 2]*ra + xy0[1, j]/2*s0 rasterImage(image=pics[[j]], xleft=xleft, ybottom=ybottom, xright=xright, ytop=ytop, xpd=TRUE) } } }, interval=2, ani.width=600, ani.height=600)
各話の会話回数。一人あたりはスペース区切りで、全体はタブ区切りである。
飯田里穂 Pile 久保ユリカ 新田恵海 内田彩 三森すずこ 楠田亜衣奈 徳井青空 南條愛乃 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 2 1 2 0 0 2 0 0 0 1 2 1 12 0 1 1 2 2 3 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 1 1 0 0 0 0 0 0 0 0 4 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 2 0 0 1 0 0 1 0 0 0 0 2 0 11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 3 0 0 1 1 0 0 3 1 1 0 0 0 1 2 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 4 4 1 5 1 1 12 2 4 6 7 5 6 7 0 4 6 1 3 8 0 1 3 3 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 5 1 2 0 0 1 4 1 1 0 0 0 0 0 0 0 3 0 1 3 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 1 1 4 2 3 2 5 4 8 7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 5 2 3 0 1 1 0 0 4 1 1 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 5 3 5 0 3 4 6 0 1 0 4 6 12 1 4 1 0 1 2 4 0 5 0 4 4 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 2 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 1 0 0 1 0 0 0 0 2 5 7 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 1 5 5 6 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 4 0 0 1 1 0 0 0 1 1 0 2 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0