• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

PythonからElixir Reportのレポートサーバーにアクセスするサンプルコード


コミットメタ情報

リビジョン09af2f2b9559d1681afd63aa1e3370012d0296c2 (tree)
日時2014-12-03 15:40:58
作者hylom <hylom@user...>
コミッターhylom

ログメッセージ

fix index.js for support 4-column traffic data

変更サマリ

差分

--- a/www_root/js/index.js
+++ b/www_root/js/index.js
@@ -55,15 +55,17 @@ function xmlParser(error, xmlRoot) {
5555 // getElements...で取得できるのはelementオブジェクト
5656 var values = [];
5757 var v = records[i].getElementsByTagNameNS(ns, "field");
58- // オブジェクトを文字列に変換する
59- for (var j = 0; j < v.length; j++) {
60- values[j] = v[j].textContent;
61- }
6258
6359 // 1列目のデータをdate型に変換する
64- var p = /([0-9]{4})-([0-9]{2})-([0-9]{2})/.exec(values[0])
60+ var p = /([0-9]{4})-([0-9]{2})-([0-9]{2})/.exec(v[0].textContent)
6561 values[0] = new Date(Number(p[1]), Number(p[2]) - 1, Number(p[3]))
6662
63+ // オブジェクトを文字列に変換する
64+ for (var j = 1; j < v.length; j++) {
65+ values[j] = Number(v[j].textContent);
66+ }
67+
68+
6769 data.push(values);
6870 }
6971 // データを元にグラフを描画する
@@ -98,7 +100,7 @@ function drawGraph() {
98100 .range([0, graph.h]);
99101
100102 // PVグラフを描画
101- g.append('g').selectAll('.bar .pv')
103+ g.append('g').selectAll('.bar .pageviews')
102104 .data(data).enter().append('rect')
103105 .attr('class', 'bar pageviews')
104106 .attr('width', thickness)
@@ -107,24 +109,34 @@ function drawGraph() {
107109 .attr('y', function(d) { return scaleY(d[1]); })
108110 .attr('transform', 'translate(20, 0)');
109111
112+ // SESSIONグラフを描画
113+ g.append('g').selectAll('.bar .sessions')
114+ .data(data).enter().append('rect')
115+ .attr('class', 'bar sessions')
116+ .attr('width', thickness)
117+ .attr('height',function (d) { return graph.h - scaleY(d[3]); })
118+ .attr('x', function(d) { return scaleX(d[0]); })
119+ .attr('y', function(d) { return scaleY(d[3]); })
120+ .attr('transform', 'translate(20, 0)');
121+
110122 // USERグラフを描画
111- g.append('g').selectAll('.bar .user')
123+ g.append('g').selectAll('.bar .users')
112124 .data(data).enter().append('rect')
113125 .attr('class', 'bar users')
114126 .attr('width', thickness)
115- .attr('height',function (d) { return graph.h - scaleY(d[2]); })
127+ .attr('height',function (d) { return graph.h - scaleY(d[4]); })
116128 .attr('x', function(d) { return scaleX(d[0]); })
117- .attr('y', function(d) { return scaleY(d[2]); })
129+ .attr('y', function(d) { return scaleY(d[4]); })
118130 .attr('transform', 'translate(20, 0)');
119131
120132 // 1ST_USERグラフを描画
121- g.append('g').selectAll('.bar .first')
133+ g.append('g').selectAll('.bar .first-visits')
122134 .data(data).enter().append('rect')
123135 .attr('class', 'bar first-visits')
124136 .attr('width', thickness)
125- .attr('height',function (d) { return graph.h - scaleY(d[3]); })
137+ .attr('height',function (d) { return graph.h - scaleY(d[2]); })
126138 .attr('x', function(d) { return scaleX(d[0]); })
127- .attr('y', function(d) { return scaleY(d[3]); })
139+ .attr('y', function(d) { return scaleY(d[2]); })
128140 .attr('transform', 'translate(20, 0)');
129141
130142 // X軸を描画