Personal tools
You are here: Home ブログ 井上
« March 2008 »
Su Mo Tu We Th Fr Sa
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Recent comments
AirOne v5.0.1出てしまいました inoue 2008-10-29
Re:Reversible debugging in GDB morita 2008-10-09
Re:Google Chromeの発表には驚きました inoue 2008-09-15
Re:Google Chromeの発表には驚きました Anonymous User 2008-09-10
Re:Windowsのタスクマネージャの闇 horii 2008-09-09
Re:Google Chromeの発表には驚きました inoue 2008-09-04
Re:Google Chromeの発表には驚きました inoue 2008-09-04
Re:Google Chromeの発表には驚きました inoue 2008-09-04
Re:Google Chromeの発表には驚きました Anonymous User 2008-09-03
Re:Software Design 2008年2月号「Emacsマスターへの道」の原稿を公開 elim 2008-07-25
Re:Rails(ActiveRecord)のJOINのイディオム inoue 2008-06-20
Re:「ピアレビュー」を読みました Anonymous User 2008-05-12
Categories
カテゴリなし
 
Document Actions

tracの集計処理結果をGoogle Chart APIでグラフ化するブックマークレット

tracでは、SQLを書くだけで集計処理が簡単にできます(参考 http://dev.ariel-networks.com/column/tech/tracreport-tips/view)。

例えば、次のような集計結果があるとします。カラムの意味は企業秘密なので書けません。

/Members/inoue/images/trac/trac-list.png

この第3カラムの値の変化をグラフ化するために、Google Chart APIを使ってみました。

CSV形式で表示して、データ部分を選択します。

/Members/inoue/images/trac/trac-list-csv.png

次のブックマークレットを実行します。言うまでもありませんが、ブックマークレットと言ってもブックマークする必要はありません。単にブラウザにURLとして解釈させれば良いだけです。URL欄にでもペーストしてください。getSelection()を使っているので、IEでは動きません。

javascript:(function() {location='http://chart.apis.google.com/chart?chs=800x200&cht=lc&chd=t:' + getSelection().toString().replace(/[^,]*,[^,]*,([^, ]*)/g, '$1,').replace(/(.*) $/, '$1').replace(/(.*),$/, '$1');})()

文字列をsplitして配列にする方が楽なのですが、変数使ったら負けな気がしたので、文字列操作だけでがんばってみました。しかし、時間軸の新しい方がグラフの左側になって見辛いので、結局、配列を使って次のように書き直しました。試合に負けて勝負に勝った、ようなものでしょうか。

javascript:(function() {var a = getSelection().toString().split(' ').reverse(); var a2 = [];for (var i = 0; i < a.length; i++) { if (a[i]) {a2.push(a[i].split(',')[2]);} }; location = 'http://chart.apis.google.com/chart?chs=800x200&cht=lc&chd=t:' + a2.join(',');})()

グラフは次のようになりました。

/Members/inoue/images/trac/trac-graph.png

一番気にいらない部分は、getSelection()でデータを取得しているので、わざわざ必要な部分を選択しなければいけない部分です。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/trac-to-google-chart/tbping

Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.