@@ -196,6 +196,9 @@ export default {
196196 },
197197 pHeight () {
198198 this .drawAxis ();
199+ },
200+ log () {
201+ this .drawAxis ();
199202 }
200203 },
201204 beforeCreate () {
@@ -241,6 +244,21 @@ export default {
241244 const varScale = vm ._varScale ;
242245 const stack = vm ._stack ;
243246
247+ let varScaleDomain = varScale .domain ;
248+ let varScaleDomainFiltered = varScale .domainFiltered ;
249+ if (varScale instanceof ContinuousScale) {
250+ if (vm .log ) {
251+ if (varScaleDomain[0 ] == 0 ) {
252+ varScaleDomain = varScaleDomain .slice ();
253+ varScaleDomain[0 ] = 1 ;
254+ }
255+ if (varScaleDomainFiltered[0 ] == 0 ) {
256+ varScaleDomainFiltered = varScaleDomainFiltered .slice ();
257+ varScaleDomainFiltered[0 ] = 1 ;
258+ }
259+ }
260+ }
261+
244262 let range;
245263 if (vm ._orientation === ORIENTATIONS .HORIZONTAL ) {
246264 range = [0 , vm .pWidth ];
@@ -263,17 +281,17 @@ export default {
263281 if (varScale instanceof CategoricalScale) {
264282 if (vm ._orientation === ORIENTATIONS .HORIZONTAL ) {
265283 scaleZoomedOut = d3_scaleBand ()
266- .domain (varScale . domain )
284+ .domain (varScaleDomain )
267285 .range (range);
268286 scaleZoomedIn = d3_scaleBand ()
269- .domain (varScale . domainFiltered )
287+ .domain (varScaleDomainFiltered )
270288 .range (range);
271289 } else if (vm ._orientation === ORIENTATIONS .VERTICAL ) {
272290 scaleZoomedOut = d3_scaleBand ()
273- .domain (varScale . domain .slice ().reverse ())
291+ .domain (varScaleDomain .slice ().reverse ())
274292 .range (range);
275293 scaleZoomedIn = d3_scaleBand ()
276- .domain (varScale . domainFiltered .slice ().reverse ())
294+ .domain (varScaleDomainFiltered .slice ().reverse ())
277295 .range (range);
278296 }
279297 tickSizeOuter = 0 ;
@@ -283,10 +301,10 @@ export default {
283301 continuousScaleFunc = d3_scaleLog;
284302 }
285303 scaleZoomedOut = continuousScaleFunc ()
286- .domain (varScale . domain )
304+ .domain (varScaleDomain )
287305 .range (range);
288306 scaleZoomedIn = continuousScaleFunc ()
289- .domain (varScale . domainFiltered )
307+ .domain (varScaleDomainFiltered )
290308 .range (range);
291309 tickSizeOuter = 6 ;
292310 // TODO: options for log, etc...
@@ -366,13 +384,13 @@ export default {
366384
367385 if (varScale instanceof CategoricalScale) {
368386 if (vm ._orientation === ORIENTATIONS .HORIZONTAL ) {
369- const barWidth = vm .pWidth / varScale . domainFiltered .length ;
387+ const barWidth = vm .pWidth / varScaleDomainFiltered .length ;
370388 if (barWidth < textBboxZoomedIn .height ) {
371389 ticksZoomedIn .selectAll (" text" )
372390 .remove ();
373391 }
374392 } else if (vm ._orientation === ORIENTATIONS .VERTICAL ) {
375- const barHeight = vm .pHeight / varScale . domainFiltered .length ;
393+ const barHeight = vm .pHeight / varScaleDomainFiltered .length ;
376394 if (barHeight < textBboxZoomedIn .height ) {
377395 ticksZoomedIn .selectAll (" text" )
378396 .remove ();
@@ -424,7 +442,7 @@ export default {
424442 axisBboxZoomedOut = container .select (" .axis-zoomed-out" ).node ().getBBox ();
425443
426444 if (varScale instanceof CategoricalScale) {
427- const barWidth = vm .pWidth / varScale . domain .length ;
445+ const barWidth = vm .pWidth / varScaleDomain .length ;
428446 if (barWidth < textBboxZoomedOut .height ) {
429447 ticksZoomedOut .selectAll (" text" )
430448 .remove ();
@@ -451,8 +469,8 @@ export default {
451469 zoomRectTranslateX = 0 ;
452470 }
453471 if (varScale instanceof ContinuousScale) {
454- let start = varScale . domainFiltered [0 ];
455- let end = varScale . domainFiltered [1 ];
472+ let start = varScaleDomainFiltered [0 ];
473+ let end = varScaleDomainFiltered [1 ];
456474 containerZoomedOut .append (" rect" )
457475 .attr (" width" , axisBboxZoomedOut .width + betweenAxisMargin)
458476 .attr (" height" , scaleZoomedOut (start) - scaleZoomedOut (end))
@@ -462,8 +480,8 @@ export default {
462480 .attr (" fill-opacity" , 0.5 )
463481 .attr (" transform" , " translate(" + zoomRectTranslateX + " ,0)" );
464482 } else if (varScale instanceof CategoricalScale) {
465- let eachBand = vm .pHeight / varScale . domain .length ;
466- for (let domainFilteredItem of varScale . domainFiltered ) {
483+ let eachBand = vm .pHeight / varScaleDomain .length ;
484+ for (let domainFilteredItem of varScaleDomainFiltered ) {
467485 containerZoomedOut .append (" rect" )
468486 .attr (" width" , axisBboxZoomedOut .width + betweenAxisMargin)
469487 .attr (" height" , eachBand)
@@ -482,8 +500,8 @@ export default {
482500 zoomRectTranslateY = 0 ;
483501 }
484502 if (varScale instanceof CategoricalScale) {
485- let eachBand = vm .pWidth / varScale . domain .length ;
486- for (let domainFilteredItem of varScale . domainFiltered ) {
503+ let eachBand = vm .pWidth / varScaleDomain .length ;
504+ for (let domainFilteredItem of varScaleDomainFiltered ) {
487505 containerZoomedOut .append (" rect" )
488506 .attr (" width" , eachBand)
489507 .attr (" height" , axisBboxZoomedOut .height )
@@ -494,8 +512,8 @@ export default {
494512 .attr (" transform" , " translate(0," + zoomRectTranslateY + " )" );
495513 }
496514 } else if (varScale instanceof ContinuousScale) {
497- let start = varScale . domainFiltered [0 ];
498- let end = varScale . domainFiltered [1 ];
515+ let start = varScaleDomainFiltered [0 ];
516+ let end = varScaleDomainFiltered [1 ];
499517 containerZoomedOut .append (" rect" )
500518 .attr (" width" , scaleZoomedOut (end) - scaleZoomedOut (start))
501519 .attr (" height" , axisBboxZoomedOut .height + betweenAxisMargin)
@@ -530,7 +548,7 @@ export default {
530548 brushed = () => {
531549 if (! d3_event .sourceEvent ) return ;
532550 let s = d3_event .selection || scaleZoomedOut .range ().slice ().reverse ();
533- let eachBand = vm .pHeight / varScale . domain .length ;
551+ let eachBand = vm .pHeight / varScaleDomain .length ;
534552 let startIndex = Math .floor ((s[0 ] / eachBand));
535553 let endIndex = Math .ceil ((s[1 ] / eachBand));
536554 varScale .zoom (startIndex, endIndex);
@@ -573,7 +591,7 @@ export default {
573591 brushed = () => {
574592 if (! d3_event .sourceEvent ) return ;
575593 let s = d3_event .selection || scaleZoomedOut .range ().slice ();
576- let eachBand = vm .pWidth / varScale . domain .length ;
594+ let eachBand = vm .pWidth / varScaleDomain .length ;
577595 let startIndex = Math .floor ((s[0 ] / eachBand));
578596 let endIndex = Math .ceil ((s[1 ] / eachBand));
579597 varScale .zoom (startIndex, endIndex);
@@ -612,8 +630,8 @@ export default {
612630 } else if (varScale instanceof CategoricalScale) {
613631 // Only allow "moving" of the brush if all domainFiltered elements are consecutive/no gaps between
614632 let hasGaps = false ;
615- let domain = varScale . domain ;
616- let domainFiltered = varScale . domainFiltered ;
633+ let domain = varScaleDomain ;
634+ let domainFiltered = varScaleDomainFiltered ;
617635 let currDomainIndex = null ;
618636 for (let domainFilteredElement of domainFiltered) {
619637 let elementIndex = domain .indexOf (domainFilteredElement);
@@ -639,9 +657,9 @@ export default {
639657 // No gaps, allow "moving"
640658 let eachBand;
641659 if (vm ._orientation === ORIENTATIONS .HORIZONTAL ) {
642- eachBand = vm .pWidth / varScale . domain .length ;
660+ eachBand = vm .pWidth / varScaleDomain .length ;
643661 } else if (vm ._orientation === ORIENTATIONS .VERTICAL ) {
644- eachBand = vm .pHeight / varScale . domain .length ;
662+ eachBand = vm .pHeight / varScaleDomain .length ;
645663 }
646664
647665 let brushMoveRange = [scaleZoomedOut (domainFiltered[0 ]), scaleZoomedOut (domainFiltered[domainFiltered .length - 1 ]) + eachBand];
0 commit comments