『遥かに仰ぎ、麗しの』オフィシャル人気投票決着!!

2010年9月1日

殿子 優勝アイコン ついに決着。風祭みやびと鷹月殿子、接戦に次ぐ接戦を制したのは殿子嬢~! わずか1615票差 ((締め切りぎりぎりで無効票が発生したのか、数が変わってました))という僅差。ほんのちょっとの状況の変化で、趨勢はひっくり返りかねないという、最後まで勝敗の読めない投票戦でしたね。

詳しい順位などは、オフィシャルページの『遥かに仰ぎ、麗しの』人気投票を見てもらうとして、中間計に次いで、最終計も出してみました。

キャラ別得票数

キャラ別得票数

殿子とみやびの一騎打ちは最後の最後までもつれましたね。その差16票。それぞれの得票数にしたら0.4%程度の差で命運が別れた格好です。

日別キャラ別得票数

日別キャラ別得票数

日が進むにつれて、2強への投票が集中していく様がよくわかりますね。投票数の落ち込みが比較的大きい梓乃とリーダさんは、それぞれ殿子・みやびへの投票に割り振られたのかな?
逆にみさきちや三嶋さん、邑那さんはほぼ横ばいの安定した得票です。少数派ながらも、義に篤いファンの支援が窺われます。

日別投票数推移

終盤戦に加えバレンタインのコメント追加で14日からの投票数が激増。それらの大部分は上位キャラへの投票に費やされているような感じ。これらの投票がもう少し早かったりしたら、また結果は微妙に違っていたのかも?
もしかして、支援のためにソフトを追加購入した猛者が、結構な数いたとか……!?

日別累積投票数推移

日別累積投票数推移

これは前回同様、圧倒的な強さを見せる殿子とみやびの票数に驚かされます。愛されてますね。

時間帯別キャラ別得票数

時間帯別キャラ別得票数

日付が変わった直後~日中で票を稼いで差を開けたみやびを、20時以降猛烈な追い上げで巻き返す殿子の図。投票者の生活スタイルが見えてくる……?
それにしても、日付変わる直前の、殿子の得票数の多さは特筆すべきですね。

時間帯別キャラ別得票数(日別)

さらに、日別・時間帯別に集計するとこんな感じ。データの都合上5日からのものになっています。最終日の殿子のラストスパートがとんでもない伸びを見せていたのですね(^^;

時間帯別投票数

時間帯別投票数

時間別に投票数の分布を出してみるとこんな感じです。特に驚くようなデータはないかと。残念(えー

殿子とみやびの時間帯別投票者分布

殿子とみやびの時間帯別投票者分布

殿子とみやびへの投票の時間帯別の分布です。日中に強いみやび、夜に怒濤の追い上げの殿子というふたりの特色が、今回の投票レースの大局の構図でもあったのかと。

本校系・分校系投票構成比

本校系・分校系投票構成比

本校系キャラの人気は異常。

殿子・みやび・3位~12位 構成比

そして、殿子とみやびの支持率は圧倒的じゃないか!

お疲れさまでした!

投票に参加された皆さま、2週間お疲れさまでした。無精な私も毎日みやびに投票しましたが、惜しくも一歩及ばず。個人的には残念な結果となってしまいましたが、この悔しさは個人的に晴らしますので ((妄想ともいう))気にしなーい。

さて、優勝者に贈られる栄誉として、藤原々々描き下ろしイラスト! さらに夏コミグッズ化!? などがありますが、どんなイラストが出てくるのでしょうかね。やはり、熱望されている、髪を下ろしたバージョンの殿子あたりが来るのか!?

熱い戦いは終わりましたが、まだまだわくわくさせてくれることでしょう。

ということで、集計作業終わりです!

備考 データ取得と解析について

日々の徒然~社会復帰へ~:バレンタイン?我が娘からもらえりゃじゅーぶんっすよ

これって、監視ツールか何か自前で作ってログに残して記録を作ったってやつでしょうかね?

監視ツールといえるほどの高度なことはやらずに、実は結構泥臭い方法で集計しています。
時間帯別の集計については、

wget http://www.pulltop.com/vote06/data2.cgi -O ~/kanishino_`date +%m%d%H%M`.html

のようなコマンドをCronで1時間おきに回して、投票結果ページのHTMLを取得。それを

#!/usr/bin/perl
use strict;
use Jcode;

my $directory = 'E:/tmp/kanishino/(集計日)/';

print "error\n" if (!(opendir (DIR,$directory)));
my @bsfile = sort grep { /html$/ && -f "$directory/$_"} readdir(DIR);
closedir (DIR);

my (%RANK,%COMMENT);
foreach my $filename(@bsfile) {
my @DATA;
open (FH,$directory.$filename) or die "error\n";
  $filename =~m/(\d\d)(\d\d)(\d\d)(\d\d)/;
  $RANK{time} .= $2."日".$3."時".",";
  $COMMENT{time} .= $2."日".$3."時".",";
while(<FH>){
  if ($_=~m/<font color=#ff6600>(.*)<\/font>/){
      my ($name,$tokuhyou,$comment);
      $name = $1;
      <FH>=~m/>(\d+)[<br>]?/;
      $tokuhyou=$1;
      <FH> =~m/>(\d+)[<br>]?/;
      $comment=$1;
      $RANK{$name} .= $tokuhyou.",";
      $COMMENT{$name} .= $comment.",";
    }
}
close (FH);
my @TEMP;
@TEMP = map {(split /,/)[1]} @DATA;
@DATA = reverse @DATA[sort {$TEMP[$a] <=> $TEMP[$b]} 0 .. $#TEMP];

$directory=~m/(\d\d\d\d)/;
open(OUT,">$directory$1_ranking.csv");
while (my($key,$value) = each %RANK) {
  print OUT $key.",".$value."\n";
  print OUT2 $key.",".$value."\n";
}
close(OUT);
open(OUT2,">$directory$1_comment.csv");
while (my($key,$value) = each %COMMENT) {
  print OUT $key.",".$value."\n";
  print OUT2 $key.",".$value."\n";
}
close(OUT2)

のようなスクリプトでCSV化してやったのをExcelで集計しました。今回のは、とある時点での得票数 ((ついでにコメント数))を集計するだけなので、もっと楽をするなら時間帯の得票数を出すようにしても良かったのですが、投票期間自体は2週間程度なのでその集計部分は手でやっちゃいました。大したことはやってないのですが、処理するデータを取り出すちょっとした作業を自動化できるとトータルの時間はかなり節約できますね。

惜しむらくは、投票開始の段階で、これをやろうと思わなかったこと(^^; 最初の週末のデータがないので、厳密な時間帯別のデータにはなりえなかったのですが、それなりに有意なデータが得られたんじゃないだろうかとも思います。

もっとも、こういう手段が通じるのは、投票結果を表示するページがきれいなコードで出力されているからで、PULLTOPの気合いの入った投票システムのおかげで、楽をさせてもらったという部分が多分にあることは間違いないですね。というか、時系列のデータだろうと記録してるんじゃないのかと思うくらい、PULLTOPの投票CGIは出来が良いですな。きっとdata.cgiの吐き出すデータの元となるログ自体は、捨てられることなく延々と蓄積されているのでしょう。