ひとめで分かるラブライブ総選挙結果

MikuHatsune2013-05-29

毎度おなじみのラブライブだが、新曲のセンターポジションをめぐって何回か総選挙をしている。
wikiから総選挙結果をパクって、未発表分のメンバーの順位予想や、次回以降の順位予想をしようと思ったけど何を元に予測すればいいかちょっと難しかったので、今までの結果をプロットすることにした。
昔やったpngパッケージのrasterImage関数を使う。
各メンバーの色はこちらから頂いた。ちなみに6月のライブはチケット争奪戦に参加することすら叶わなかった。

tmp <- read.delim("lovelive_vote.csv")
data0 <- tmp[,-1]
vote <- tmp[,1]

cols <- c("orangered", "skyblue", grey(0.8), "blue", "yellow", "red", "violet", "green", "pink")
par(mar=c(4, 4, 2, 2), bty="l")
matplot(data0, type="l", ylim=c(9, 1), ylab="Rank", xaxt="n", yaxt="n", lty=1, col=cols ,lwd=3)
axis(1, at=seq(vote), label=gsub(",", "\n", as.character(vote)), las=1, cex.axis=0.7, padj=0.5)
axis(2, at=seq(ncol(data0)), label=seq(ncol(data0)), las=2)

library(png)
picnames <- c("kosaka", "ayase", "minami", "sonoda", "hoshizora", "nishikino", "tojo",  "koizumi", "yazawa")
pics <- vector("list", length(picnames))
for(i in seq(picnames)){
	pics[[i]] <- readPNG(paste("~/Dropbox/love/", picnames[i], ".png", sep=""), native=TRUE)
}
# なぜか上下逆転している
pics <- mapply(function(x) pics[[x]][rev(seq(nrow(pics[[x]]))),,], seq(pics))

ra <- 1 #原点に近いところが潰れるので拡大したかったけど、等倍でやった。
xy0 <- sapply(pics, dim)[1:2, ] #pixel
rownames(xy0) <- c("height", "width")
s0 <- 0.005 #拡大縮小率

par(mar=c(4, 4, 2, 2), bty="l")
matplot(data0, type="l", ylim=c(9, 1), ylab="Rank", axes=FALSE, lty=1, col=cols ,lwd=4)
axis(1, at=seq(vote)[-6], label=gsub(",", "\n", as.character(vote))[-6], las=1, cex.axis=1.1, padj=0.6, tick=FALSE)
axis(1, at=seq(vote)[6], label=gsub(",", "\n", as.character(vote))[6], las=1, cex.axis=1, padj=0.6, tick=FALSE)
axis(2, at=seq(ncol(data0)), label=seq(ncol(data0)), las=2, tick=FALSE, cex.axis=2)

for(j in seq(pics)){
for(i in seq(vote)){
	xleft=i*ra - xy0[2, j]/2*s0
	ybottom=data0[i, j]*ra - xy0[1, j]/2*s0
	xright=i*ra + xy0[2, j]/2*s0
	ytop=data0[i, j]*ra + xy0[1, j]/2*s0
	rasterImage(image=pics[[j]], xleft=xleft, ybottom=ybottom, xright=xright, ytop=ytop, xpd=TRUE)
}}

"ヒロイン"	"高坂穂乃果"	"絢瀬絵里"	"南ことり"	"園田海未"	"星空凛"	"西木野真姫"	"東條希"	"小泉花陽"	"矢澤にこ"
"第1回総選挙"	1	8	9	2	4	6	3	7	5
"第2回総選挙"	4	9	2	5	6	8	3	7	1
"第3回総選挙"	1	7	2	3	8	6	4	9	5
"第4回総選挙"	6	9	1	5	8	3	7	4	2
"電撃G'sマガジン,カバーガール決定戦"	1	5	4	2	8	6	9	7	3
"CURE MAID CAFÉ,ラブライブ!カフェ,μ'sチョコレートガール投票"	7	6	2	3	9	8	5	1	4
"第5回総選挙,第1次中間発表"	3	2	4	5	7	1	8	9	6
"第5回総選挙,第2次中間発表,累計順位"	3	2	6	5	4	1	9	8	7
"第5回総選挙,第2次中間発表,2次投票期間順位"	3	2	8	7	5	1	9	4	6
"第5回総選挙"	3	2				1