diff --git a/c3.js b/c3.js index f3d92fe..6fede65 100644 --- a/c3.js +++ b/c3.js @@ -248,7 +248,8 @@ // bar var __bar_width = getConfig(['bar', 'width']), - __bar_width_ratio = getConfig(['bar', 'width', 'ratio'], 0.6); + __bar_width_ratio = getConfig(['bar', 'width', 'ratio'], 0.6), + __bar_zerobased = getConfig(['bar', 'zerobased'], true); // pie var __pie_label_show = getConfig(['pie', 'label', 'show'], true), @@ -1235,7 +1236,7 @@ isAllNegative = yDomainMin <= 0 && yDomainMax <= 0; // Bar/Area chart should be 0-based if all positive|negative - if (hasBarType(yTargets) || hasAreaType(yTargets)) { + if ((hasBarType(yTargets) && isBarZerobased()) || hasAreaType(yTargets)) { if (isAllPositive) { yDomainMin = 0; } if (isAllNegative) { yDomainMax = 0; } } @@ -1269,7 +1270,7 @@ padding_bottom = getAxisPadding(__axis_y2_padding, 'bottom', padding, domainLength); } // Bar/Area chart should be 0-based if all positive|negative - if (hasBarType(yTargets) || hasAreaType(yTargets)) { + if ((hasBarType(yTargets) && isBarZerobased()) || hasAreaType(yTargets)) { if (isAllPositive) { padding_bottom = yDomainMin; } if (isAllNegative) { padding_top = -yDomainMax; } } @@ -2201,6 +2202,10 @@ var id = (typeof d === 'string') ? d : d.id; return __data_types[id] === 'bar'; } + function isBarZerobased() + { + return __bar_zerobased; + } function isScatterType(d) { var id = (typeof d === 'string') ? d : d.id; return __data_types[id] === 'scatter';