Codebase list node-d3-shape / bf15db4
Put zero values at zero. Mike Bostock 4 years ago
3 changed file(s) with 20 addition(s) and 5 deletion(s). Raw diff Collapse all Expand all
11331133
11341134 <a name="stackOffsetDiverging" href="#stackOffsetDiverging">#</a> d3.<b>stackOffsetDiverging</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/diverging.js)
11351135
1136 Positive values are stacked above zero, while negative values are [stacked below zero](https://bl.ocks.org/mbostock/b5935342c6d21928111928401e2c8608).
1136 Positive values are stacked above zero, negative values are [stacked below zero](https://bl.ocks.org/mbostock/b5935342c6d21928111928401e2c8608), and zero values are stacked at zero.
11371137
11381138 <a name="stackOffsetNone" href="#stackOffsetNone">#</a> d3.<b>stackOffsetNone</b>(<i>series</i>, <i>order</i>) · [Source](https://github.com/d3/d3-shape/blob/master/src/offset/none.js)
11391139
11 if (!((n = series.length) > 0)) return;
22 for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
33 for (yp = yn = 0, i = 0; i < n; ++i) {
4 if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {
4 if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
55 d[0] = yp, d[1] = yp += dy;
66 } else if (dy < 0) {
77 d[1] = yn, d[0] = yn += dy;
88 } else {
9 d[0] = yp;
9 d[0] = 0, d[1] = dy;
1010 }
1111 }
1212 }
1515 test.end();
1616 });
1717
18 tape.only("stackOffsetDiverging(series, order) handles a single series", function(test) {
18 tape("stackOffsetDiverging(series, order) handles a single series", function(test) {
1919 var series = [
2020 [[1, 2], [2, 4], [3, 4]]
2121 ];
3737 series[1][1][1] = "NaN"; // can’t test.equal NaN
3838 test.deepEqual(series, [
3939 [[0, 1], [0, 2], [0, 1]],
40 [[1, 4], [2, "NaN"], [1, 3]],
40 [[1, 4], [0, "NaN"], [1, 3]],
4141 [[4, 9], [2, 4], [3, 7]]
4242 ]);
4343 test.end();
7272 ]);
7373 test.end();
7474 });
75
76 tape("stackOffsetDiverging(series, order) puts zero values at zero, in order", function(test) {
77 var series = [
78 [[0, 1], [0, 2], [0, -1]],
79 [[0, 3], [0, 0], [0, 0]],
80 [[0, 5], [0, 2], [0, 4]]
81 ];
82 shape.stackOffsetDiverging(series, shape.stackOrderNone(series));
83 test.deepEqual(series, [
84 [[0, 1], [0, 2], [-1, 0]],
85 [[1, 4], [0, 0], [0, 0]],
86 [[4, 9], [2, 4], [0, 4]]
87 ]);
88 test.end();
89 });