|
60 | 60 | h = 400,
|
61 | 61 | padding = { top: 20, right: 5, bottom: 30, left: 50 };
|
62 | 62 |
|
| 63 | + var totalH = h + padding.top + padding.bottom; |
| 64 | + var totalW = w + padding.left + padding.right; |
| 65 | + |
63 | 66 | activate();
|
64 | 67 |
|
65 | 68 | function activate() {
|
|
71 | 74 | });
|
72 | 75 |
|
73 | 76 | var x = d3.time.scale()
|
74 |
| - .range([0 + padding.left, w + padding.left]) |
| 77 | + .range([padding.left + 5, w + padding.left - 5]) |
75 | 78 | .domain(d3.extent(history, function(d) { return d.ratingDate; }));
|
76 | 79 |
|
77 | 80 | var y = d3.scale.linear()
|
78 |
| - .range([h + padding.top, padding.top]) |
| 81 | + .range([h + padding.top - 5, padding.top + 5]) |
79 | 82 | .domain(d3.extent(history, function(d) { return d.newRating; }));
|
80 | 83 |
|
81 | 84 |
|
|
151 | 154 | .attr('class', 'line')
|
152 | 155 | .attr('d', line)
|
153 | 156 |
|
| 157 | + |
| 158 | + svg.append('g') |
| 159 | + .selectAll('line') |
| 160 | + .data($scope.colors) |
| 161 | + .enter() |
| 162 | + .append('line') |
| 163 | + .attr('x1', totalW - 3) |
| 164 | + .attr('x2', totalW - 3) |
| 165 | + .attr('y1', function(d) { |
| 166 | + return processRatingStripePoint(y(d.start)); |
| 167 | + }) |
| 168 | + .attr('y2', function(d) { |
| 169 | + return processRatingStripePoint(y(d.end)); |
| 170 | + }) |
| 171 | + .attr('stroke', function(d) { |
| 172 | + return d.color; |
| 173 | + }) |
| 174 | + .attr('stroke-width', 3) |
| 175 | + |
| 176 | + function processRatingStripePoint(y) { |
| 177 | + console.log('y:' + y) |
| 178 | + if (y < padding.top) { |
| 179 | + return padding.top; |
| 180 | + } else if (y > totalH - padding.bottom) { |
| 181 | + return padding.bottom; |
| 182 | + } else { |
| 183 | + return y; |
| 184 | + } |
| 185 | + } |
| 186 | + |
154 | 187 | svg.selectAll('circle')
|
155 | 188 | .data(history)
|
156 | 189 | .enter()
|
|
0 commit comments