ガールフレンド(仮)のキャラ分析

というわけで、ミス・モノクロームの欠損値を補ったので、毎度おなじみの主成分分析をやる(ラブライブ!, シンデレラガールズ, Wake Up, Girls!)。
画像はガールフレンド(仮)速報のトップページを保存したらjpgが取ってこれるので、001から始まるjpgファイルだけ残して適当にフォルダ名(/girlfriend/pngs/)を付けておく。
クロエ・ルメールは声からしてぜってーロリキャラだと思っていたら、実は3年生でグラマラスキャラだということがわかった。

pngs <- list.files("/girlfriend/pngs/")
library(png)
library(jpeg)
pics <- vector("list", length(pngID))
for(i in seq(pics)){
	pics[[i]] <- readJPEG(paste("/girlfriend/pngs/", pngID[i], ".jpg", sep=""), native=TRUE)
}
ra <- 1 #原点に近いところが潰れるので拡大したかったけど、等倍でやった。
xy0 <- sapply(pics, dim)[1:2, ] #pixel
xy0[2,] <- 200 # なんか横が潰れるのでテコ入れ
rownames(xy0) <- c("height", "width")
s0 <- 0.0015 #拡大縮小率
bityosei <- replicate(nrow(dat1), c(0.5,-2.8))
bityosei[2, c(2,3,7,14)] <- 3.8
bityosei[1, 4] <- 0.05

#png("20140110kari.png", 1600, 1600)
par(mar=c(6, 7, 5, 2))
plot(pca_score[, 1:2], type="n", xlab="", ylab="← スレンダー 年相応スタイル グラマー →", cex.lab=5)
mtext("← 大人\tスタイル\tロリ →", 1, line=5, cex=5)
title("ガールフレンド(仮) のキャラ分析", cex.main=5)
abline(h=0, v=0, lty=3, col=grey(0.5), lwd=2)
lay0 <- pca_score[,1:2]
for(i in rev(seq(pics))){
	xleft=lay0[i, 1]*ra - xy0[2, i]/2*s0
	ybottom=lay0[i, 2]*ra - xy0[1, i]/2*s0
	xright=lay0[i, 1]*ra + xy0[2, i]/2*s0
	ytop=lay0[i, 2]*ra + xy0[1, i]/2*s0
	rasterImage(image=pics[[i]], xleft=xleft, ybottom=ybottom, xright=xright, ytop=ytop, xpd=TRUE)
	text(pca_score[i, 1], pca_score[i, 2], rownames(dat1)[i], adj=bityosei[,i])
}
#dev.off()