@@ -173,36 +173,43 @@ function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks, ax) {
173173 dv ,
174174 i ;
175175
176- if ( Array . isArray ( arrayIn ) && ! isHist && ( ax . type !== 'category' ) ) {
176+ var isArrayOfTwoItemsOrMore = Array . isArray ( arrayIn ) && arrayIn . length > 1 ;
177+
178+ if ( isArrayOfTwoItemsOrMore && ! isHist && ( ax . type !== 'category' ) ) {
177179 arrayIn = arrayIn . map ( ax . d2c ) ;
178180 var len = arrayIn . length ;
179181
180182 // given vals are brick centers
181- // hopefully length== numbricks, but use this method even if too few are supplied
183+ // hopefully length === numbricks, but use this method even if too few are supplied
182184 // and extend it linearly based on the last two points
183185 if ( len <= numbricks ) {
184186 // contour plots only want the centers
185187 if ( isContour || isGL2D ) arrayOut = arrayIn . slice ( 0 , numbricks ) ;
186- else if ( numbricks === 1 ) arrayOut = [ arrayIn [ 0 ] - 0.5 , arrayIn [ 0 ] + 0.5 ] ;
188+ else if ( numbricks === 1 ) {
189+ arrayOut = [ arrayIn [ 0 ] - 0.5 , arrayIn [ 0 ] + 0.5 ] ;
190+ }
187191 else {
188192 arrayOut = [ 1.5 * arrayIn [ 0 ] - 0.5 * arrayIn [ 1 ] ] ;
193+
189194 for ( i = 1 ; i < len ; i ++ ) {
190195 arrayOut . push ( ( arrayIn [ i - 1 ] + arrayIn [ i ] ) * 0.5 ) ;
191196 }
197+
192198 arrayOut . push ( 1.5 * arrayIn [ len - 1 ] - 0.5 * arrayIn [ len - 2 ] ) ;
193199 }
194200
195201 if ( len < numbricks ) {
196202 var lastPt = arrayOut [ arrayOut . length - 1 ] ,
197203 delta = lastPt - arrayOut [ arrayOut . length - 2 ] ;
204+
198205 for ( i = len ; i < numbricks ; i ++ ) {
199206 lastPt += delta ;
200207 arrayOut . push ( lastPt ) ;
201208 }
202209 }
203210 }
204211 else {
205- // hopefully length== numbricks+1, but do something regardless:
212+ // hopefully length === numbricks+1, but do something regardless:
206213 // given vals are brick boundaries
207214 return isContour ?
208215 arrayIn . slice ( 0 , numbricks ) : // we must be strict for contours
@@ -211,14 +218,17 @@ function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks, ax) {
211218 }
212219 else {
213220 dv = dvIn || 1 ;
214- if ( v0In === undefined ) v0 = 0 ;
221+
222+ if ( Array . isArray ( arrayIn ) && arrayIn . length === 1 ) v0 = arrayIn [ 0 ] ;
223+ else if ( v0In === undefined ) v0 = 0 ;
215224 else if ( isHist || ax . type === 'category' ) v0 = v0In ;
216225 else v0 = ax . d2c ( v0In ) ;
217226
218227 for ( i = ( isContour || isGL2D ) ? 0 : - 0.5 ; i < numbricks ; i ++ ) {
219228 arrayOut . push ( v0 + dv * i ) ;
220229 }
221230 }
231+
222232 return arrayOut ;
223233}
224234
0 commit comments