PythonからElixir Reportのレポートサーバーにアクセスするサンプルコード
リビジョン | 09af2f2b9559d1681afd63aa1e3370012d0296c2 (tree) |
---|---|
日時 | 2014-12-03 15:40:58 |
作者 | hylom <hylom@user...> |
コミッター | hylom |
fix index.js for support 4-column traffic data
@@ -55,15 +55,17 @@ function xmlParser(error, xmlRoot) { | ||
55 | 55 | // getElements...で取得できるのはelementオブジェクト |
56 | 56 | var values = []; |
57 | 57 | var v = records[i].getElementsByTagNameNS(ns, "field"); |
58 | - // オブジェクトを文字列に変換する | |
59 | - for (var j = 0; j < v.length; j++) { | |
60 | - values[j] = v[j].textContent; | |
61 | - } | |
62 | 58 | |
63 | 59 | // 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) | |
65 | 61 | values[0] = new Date(Number(p[1]), Number(p[2]) - 1, Number(p[3])) |
66 | 62 | |
63 | + // オブジェクトを文字列に変換する | |
64 | + for (var j = 1; j < v.length; j++) { | |
65 | + values[j] = Number(v[j].textContent); | |
66 | + } | |
67 | + | |
68 | + | |
67 | 69 | data.push(values); |
68 | 70 | } |
69 | 71 | // データを元にグラフを描画する |
@@ -98,7 +100,7 @@ function drawGraph() { | ||
98 | 100 | .range([0, graph.h]); |
99 | 101 | |
100 | 102 | // PVグラフを描画 |
101 | - g.append('g').selectAll('.bar .pv') | |
103 | + g.append('g').selectAll('.bar .pageviews') | |
102 | 104 | .data(data).enter().append('rect') |
103 | 105 | .attr('class', 'bar pageviews') |
104 | 106 | .attr('width', thickness) |
@@ -107,24 +109,34 @@ function drawGraph() { | ||
107 | 109 | .attr('y', function(d) { return scaleY(d[1]); }) |
108 | 110 | .attr('transform', 'translate(20, 0)'); |
109 | 111 | |
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 | + | |
110 | 122 | // USERグラフを描画 |
111 | - g.append('g').selectAll('.bar .user') | |
123 | + g.append('g').selectAll('.bar .users') | |
112 | 124 | .data(data).enter().append('rect') |
113 | 125 | .attr('class', 'bar users') |
114 | 126 | .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]); }) | |
116 | 128 | .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]); }) | |
118 | 130 | .attr('transform', 'translate(20, 0)'); |
119 | 131 | |
120 | 132 | // 1ST_USERグラフを描画 |
121 | - g.append('g').selectAll('.bar .first') | |
133 | + g.append('g').selectAll('.bar .first-visits') | |
122 | 134 | .data(data).enter().append('rect') |
123 | 135 | .attr('class', 'bar first-visits') |
124 | 136 | .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]); }) | |
126 | 138 | .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]); }) | |
128 | 140 | .attr('transform', 'translate(20, 0)'); |
129 | 141 | |
130 | 142 | // X軸を描画 |