OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright (c) 2016 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2016 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/ui/base/column_chart.html"> | 8 <link rel="import" href="/tracing/ui/base/column_chart.html"> |
9 | 9 |
10 <script> | 10 <script> |
(...skipping 24 matching lines...) Expand all Loading... |
35 this.verticalScale_.domain(this.xScale_.domain()); | 35 this.verticalScale_.domain(this.xScale_.domain()); |
36 this.verticalScale_.range([this.chartAreaSize.height, 0]); | 36 this.verticalScale_.range([this.chartAreaSize.height, 0]); |
37 this.horizontalScale_ = d3.scale.linear(); | 37 this.horizontalScale_ = d3.scale.linear(); |
38 this.horizontalScale_.domain(this.yScale_.domain()); | 38 this.horizontalScale_.domain(this.yScale_.domain()); |
39 this.horizontalScale_.range([0, this.chartAreaSize.width]); | 39 this.horizontalScale_.range([0, this.chartAreaSize.width]); |
40 }, | 40 }, |
41 | 41 |
42 drawBrush_: function(brushRectsSel) { | 42 drawBrush_: function(brushRectsSel) { |
43 brushRectsSel | 43 brushRectsSel |
44 .attr('x', 0) | 44 .attr('x', 0) |
| 45 .attr('width', this.chartAreaSize.width) |
45 .attr('y', function(d) { | 46 .attr('y', function(d) { |
46 return this.chartAreaSize.height - this.verticalScale_(d.min); | 47 return this.verticalScale_(d.max); |
47 }.bind(this)) | 48 }.bind(this)) |
48 .attr('width', this.chartAreaSize.width) | |
49 .attr('height', function(d) { | 49 .attr('height', function(d) { |
50 return (this.chartAreaSize.height - this.verticalScale_(d.max)) - | 50 return this.verticalScale_(d.min) - this.verticalScale_(d.max); |
51 (this.chartAreaSize.height - this.verticalScale_(d.min)); | |
52 }.bind(this)); | 51 }.bind(this)); |
53 }, | 52 }, |
54 | 53 |
55 getDataPointAtChartPoint_: function(p) { | 54 getDataPointAtChartPoint_: function(chartPoint) { |
| 55 var flippedPoint = { |
| 56 x: this.chartAreaSize.height - chartPoint.y, |
| 57 y: this.chartAreaSize.width - chartPoint.x |
| 58 }; |
56 return ColumnChart.prototype.getDataPointAtChartPoint_.call( | 59 return ColumnChart.prototype.getDataPointAtChartPoint_.call( |
57 this, {x: p.y, y: p.x}); | 60 this, flippedPoint); |
58 }, | 61 }, |
59 | 62 |
60 drawXAxis_: function(xAxis) { | 63 drawXAxis_: function(xAxis) { |
61 xAxis.attr('transform', 'translate(0,' + this.chartAreaSize.height + ')') | 64 xAxis.attr('transform', 'translate(0,' + this.chartAreaSize.height + ')') |
62 .call(d3.svg.axis() | 65 .call(d3.svg.axis() |
63 .scale(this.horizontalScale_) | 66 .scale(this.horizontalScale_) |
64 .orient('bottom')); | 67 .orient('bottom')); |
65 this.drawXAxisTicks_(xAxis); | |
66 }, | 68 }, |
67 | 69 |
68 drawYAxis_: function(yAxis) { | 70 drawYAxis_: function(yAxis) { |
69 var axisModifier = d3.svg.axis() | 71 var axisModifier = d3.svg.axis() |
70 .scale(this.verticalScale_) | 72 .scale(this.verticalScale_) |
71 .orient('left'); | 73 .orient('left'); |
72 yAxis.call(axisModifier); | 74 yAxis.call(axisModifier); |
73 this.drawYAxisTicks_(yAxis); | |
74 }, | 75 }, |
75 | 76 |
76 drawHoverValueBox_: function(rect) { | 77 drawHoverValueBox_: function(rect) { |
77 var seriesKeys = [...this.seriesByKey_.keys()]; | 78 var seriesKeys = [...this.seriesByKey_.keys()]; |
78 var chartAreaSel = d3.select(this.chartAreaElement); | 79 var chartAreaSel = d3.select(this.chartAreaElement); |
79 chartAreaSel.selectAll('.hover').remove(); | 80 chartAreaSel.selectAll('.hover').remove(); |
80 var keyWidthPx = 0; | 81 var keyWidthPx = 0; |
81 var keyHeightPx = 0; | 82 var keyHeightPx = 0; |
82 if (seriesKeys.length > 1) { | 83 if (seriesKeys.length > 1) { |
83 keyWidthPx = tr.ui.b.getSVGTextWidth( | 84 keyWidthPx = tr.ui.b.getSVGTextWidth( |
(...skipping 27 matching lines...) Expand all Loading... |
111 chartAreaSel | 112 chartAreaSel |
112 .append('text') | 113 .append('text') |
113 .attr('class', 'hover') | 114 .attr('class', 'hover') |
114 .attr('fill', rect.color) | 115 .attr('fill', rect.color) |
115 .attr('x', hoverLeftPx + 2) | 116 .attr('x', hoverLeftPx + 2) |
116 .attr('y', hoverTopPx + keyHeightPx + valueHeightPx - 3) | 117 .attr('y', hoverTopPx + keyHeightPx + valueHeightPx - 3) |
117 .text(rect.value); | 118 .text(rect.value); |
118 }, | 119 }, |
119 | 120 |
120 drawRect_: function(rect, sel) { | 121 drawRect_: function(rect, sel) { |
121 // Rotate |rect| 90 degrees counter-clockwise. | 122 // Flip |rect| around |y=x|. |
122 var colRect = { | 123 var colRect = { |
123 key: rect.key, | 124 key: rect.key, |
124 value: rect.value, | 125 value: rect.value, |
125 color: rect.color, | 126 color: rect.color, |
126 topPx: rect.leftPx, | 127 topPx: this.chartAreaSize.height - rect.leftPx - rect.widthPx, |
127 leftPx: this.chartAreaSize.width - rect.topPx - rect.heightPx, | 128 leftPx: this.chartAreaSize.width - rect.topPx - rect.heightPx, |
128 widthPx: rect.heightPx, | 129 widthPx: rect.heightPx, |
129 heightPx: rect.widthPx, | 130 heightPx: rect.widthPx, |
130 }; | 131 }; |
131 ColumnChart.prototype.drawRect_.call(this, colRect, sel); | 132 ColumnChart.prototype.drawRect_.call(this, colRect, sel); |
132 } | 133 } |
133 }; | 134 }; |
134 | 135 |
135 return { | 136 return { |
136 BarChart: BarChart | 137 BarChart: BarChart |
137 }; | 138 }; |
138 }); | 139 }); |
139 </script> | 140 </script> |
OLD | NEW |