Skip to content

Commit

Permalink
fix dc-js#243
Browse files Browse the repository at this point in the history
  • Loading branch information
NickQiZhu committed Aug 22, 2013
1 parent 3608550 commit 64f7482
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 19 deletions.
22 changes: 14 additions & 8 deletions dc.js
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,8 @@ dc.utils.createLegendable = function (chart, group, index, accessor) {
if (typeof chart.colors === 'function') legendable.color = chart.colors()(index);
return legendable;
};

dc.utils.safeNumber = function(n){return isNaN(n)?0:n;};
dc.events = {
current: null
};
Expand Down Expand Up @@ -2461,7 +2463,7 @@ dc.barChart = function (parent, chartGroup) {
};

function barHeight(d) {
return Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0));
return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));
}

function renderBars(layer, d, i) {
Expand All @@ -2480,15 +2482,15 @@ dc.barChart = function (parent, chartGroup) {
.attr("x", function (d) {
var x = _chart.x()(d.x);
if (_centerBar) x -= _barWidth / 2;
return x;
return dc.utils.safeNumber(x);
})
.attr("y", function (d) {
var y = _chart.y()(d.y + d.y0);

if (d.y < 0)
y -= barHeight(d);

return y;
return dc.utils.safeNumber(y);
})
.attr("width", _barWidth)
.attr("height", function (d) {
Expand Down Expand Up @@ -2660,7 +2662,7 @@ dc.lineChart = function (parent, chartGroup) {

dc.transition(layers.select("path.line"), _chart.transitionDuration())
.attr("d", function (d) {
return line(d.points);
return safeD(line(d.points));
});
}

Expand All @@ -2683,16 +2685,20 @@ dc.lineChart = function (parent, chartGroup) {
return _chart.colors()(i);
})
.attr("d", function (d) {
return area(d.points);
return safeD(area(d.points));
});

dc.transition(layers.select("path.area"), _chart.transitionDuration())
.attr("d", function (d) {
return area(d.points);
return safeD(area(d.points));
});
}
}

function safeD(d){
return d.indexOf("NaN") >= 0 ? "M0,0" : d;
};

function drawDots(layersEnter) {
if (!_chart.brushOn()) {
layersEnter.each(function (d, i) {
Expand Down Expand Up @@ -2728,10 +2734,10 @@ dc.lineChart = function (parent, chartGroup) {
.append("title").text(_chart.title());

dots.attr("cx", function (d) {
return _chart.x()(d.x);
return dc.utils.safeNumber(_chart.x()(d.x));
})
.attr("cy", function (d) {
return _chart.y()(d.y + d.y0);
return dc.utils.safeNumber(_chart.y()(d.y + d.y0));
})
.select("title").text(_chart.title());

Expand Down
6 changes: 3 additions & 3 deletions dc.min.js

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions src/bar-chart.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dc.barChart = function (parent, chartGroup) {
};

function barHeight(d) {
return Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0));
return dc.utils.safeNumber(Math.abs(_chart.y()(d.y + d.y0) - _chart.y()(d.y0)));
}

function renderBars(layer, d, i) {
Expand All @@ -59,15 +59,15 @@ dc.barChart = function (parent, chartGroup) {
.attr("x", function (d) {
var x = _chart.x()(d.x);
if (_centerBar) x -= _barWidth / 2;
return x;
return dc.utils.safeNumber(x);
})
.attr("y", function (d) {
var y = _chart.y()(d.y + d.y0);

if (d.y < 0)
y -= barHeight(d);

return y;
return dc.utils.safeNumber(y);
})
.attr("width", _barWidth)
.attr("height", function (d) {
Expand Down
14 changes: 9 additions & 5 deletions src/line-chart.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ dc.lineChart = function (parent, chartGroup) {

dc.transition(layers.select("path.line"), _chart.transitionDuration())
.attr("d", function (d) {
return line(d.points);
return safeD(line(d.points));
});
}

Expand All @@ -80,16 +80,20 @@ dc.lineChart = function (parent, chartGroup) {
return _chart.colors()(i);
})
.attr("d", function (d) {
return area(d.points);
return safeD(area(d.points));
});

dc.transition(layers.select("path.area"), _chart.transitionDuration())
.attr("d", function (d) {
return area(d.points);
return safeD(area(d.points));
});
}
}

function safeD(d){
return d.indexOf("NaN") >= 0 ? "M0,0" : d;
};

function drawDots(layersEnter) {
if (!_chart.brushOn()) {
layersEnter.each(function (d, i) {
Expand Down Expand Up @@ -125,10 +129,10 @@ dc.lineChart = function (parent, chartGroup) {
.append("title").text(_chart.title());

dots.attr("cx", function (d) {
return _chart.x()(d.x);
return dc.utils.safeNumber(_chart.x()(d.x));
})
.attr("cy", function (d) {
return _chart.y()(d.y + d.y0);
return dc.utils.safeNumber(_chart.y()(d.y + d.y0));
})
.select("title").text(_chart.title());

Expand Down
2 changes: 2 additions & 0 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,5 @@ dc.utils.createLegendable = function (chart, group, index, accessor) {
if (typeof chart.colors === 'function') legendable.color = chart.colors()(index);
return legendable;
};

dc.utils.safeNumber = function(n){return isNaN(n)?0:n;};

0 comments on commit 64f7482

Please sign in to comment.