@@ -53,6 +53,7 @@ angular.module('picardy.graphs.bar', ['picardy.graphs.common'])
53
53
info = common . newLayer ( svg , 'info' ) ;
54
54
55
55
margin = {
56
+ top : 10 ,
56
57
info : 50
57
58
} ;
58
59
@@ -76,20 +77,34 @@ angular.module('picardy.graphs.bar', ['picardy.graphs.common'])
76
77
77
78
function drawYAxis ( done ) {
78
79
var axisLength = options . height ,
79
- yAxis ;
80
+ yAxis , range ;
80
81
81
82
if ( isVertical ( ) ) {
82
83
axisLength -= margin . info ;
84
+ axisLength -= margin . top ;
83
85
y = d3 . scale . linear ( ) . range ( [ axisLength , 0 ] ) ;
84
- y . domain ( [ 0 , d3 . max ( options . data , function ( d ) {
85
- return d . y ;
86
- } ) ] ) ;
86
+
87
+ if ( options . max && options . max . y ) {
88
+ range = [ 0 , options . max . y ] ;
89
+ } else {
90
+ range = [ 0 , d3 . max ( options . data , function ( d ) {
91
+ return d . y ;
92
+ } ) ] ;
93
+ }
94
+
95
+ y . domain ( range ) ;
87
96
} else {
88
97
axisLength -= margin . info + margin . label + 21 ;
89
98
y = d3 . scale . ordinal ( ) . rangeRoundBands ( [ 0 , axisLength ] , 0.2 ) ;
90
- y . domain ( options . data . map ( function ( d ) {
91
- return d . x ;
92
- } ) ) ;
99
+
100
+ if ( options . max && options . max . y ) {
101
+ range = [ 0 , options . max . y ] ;
102
+ } else {
103
+ range = options . data . map ( function ( d ) {
104
+ return d . x ;
105
+ } ) ;
106
+ }
107
+ y . domain ( range ) ;
93
108
}
94
109
95
110
yAxis = d3 . svg . axis ( )
@@ -112,6 +127,7 @@ angular.module('picardy.graphs.bar', ['picardy.graphs.common'])
112
127
if ( isVertical ( ) ) {
113
128
margin . yAxis = this . getBBox ( ) . width ;
114
129
xPos = margin . label + margin . yAxis + 20 ;
130
+ yPos += margin . top ;
115
131
} else {
116
132
xPos += 20 ;
117
133
yPos += margin . info + margin . label + 20 ;
@@ -126,19 +142,30 @@ angular.module('picardy.graphs.bar', ['picardy.graphs.common'])
126
142
127
143
function drawXAxis ( ) {
128
144
var axisLength = options . width - 21 ,
129
- xAxis ;
145
+ xAxis , range ;
130
146
131
147
if ( isVertical ( ) ) {
132
148
axisLength -= margin . label + margin . yAxis ;
133
149
x = d3 . scale . ordinal ( ) . rangeRoundBands ( [ 0 , axisLength ] , 0.2 ) ;
134
- x . domain ( options . data . map ( function ( d ) {
135
- return d . x ;
136
- } ) ) ;
150
+ if ( options . max && options . max . x ) {
151
+ range = [ 0 , options . max . x ] ;
152
+ } else {
153
+ range = options . data . map ( function ( d ) {
154
+ return d . x ;
155
+ } ) ;
156
+ }
157
+ x . domain ( range ) ;
137
158
} else {
138
159
x = d3 . scale . linear ( ) . range ( [ axisLength , 0 ] ) ;
139
- x . domain ( [ 0 , d3 . max ( options . data , function ( d ) {
140
- return d . y ;
141
- } ) ] ) ;
160
+ if ( options . max && options . max . y ) {
161
+ range = [ 0 , options . max . y ] ;
162
+ } else {
163
+ range = [ 0 , d3 . max ( options . data , function ( d ) {
164
+ return d . y ;
165
+ } ) ] ;
166
+ }
167
+
168
+ x . domain ( range ) ;
142
169
}
143
170
144
171
xAxis = d3 . svg . axis ( )
@@ -239,14 +266,14 @@ angular.module('picardy.graphs.bar', ['picardy.graphs.common'])
239
266
var attrTransitions = {
240
267
transform : function ( d ) {
241
268
return isVertical ( )
242
- ? common . translate ( margin . label + margin . yAxis + 20 + x ( d . x ) , y ( d . y ) + 1 )
269
+ ? common . translate ( margin . label + margin . yAxis + 20 + x ( d . x ) , margin . top + y ( d . y ) + 1 )
243
270
: common . translate ( 20 , margin . info + margin . label + y ( d . x ) + 21 ) ;
244
271
}
245
272
} ;
246
273
247
274
if ( isVertical ( ) ) {
248
275
attrTransitions . height = function ( d ) {
249
- return options . height - margin . info - y ( d . y ) ;
276
+ return options . height - margin . top - margin . info - y ( d . y ) ;
250
277
} ;
251
278
} else {
252
279
attrTransitions . width = function ( d ) {
0 commit comments