Skip to content

Commit f9ec0c9

Browse files
Filmbostock
andauthored
fix dodge identity (#902)
* avoid a crash on {r: {type:"identity"}} * test * check for scale existence Co-authored-by: Mike Bostock <[email protected]>
1 parent 5371fad commit f9ec0c9

File tree

6 files changed

+438
-8
lines changed

6 files changed

+438
-8
lines changed

src/transforms/dodge.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ export function dodgeY(dodgeOptions = {}, options = {}) {
4343
function dodge(y, x, anchor, padding, options) {
4444
return initializer(options, function(data, facets, {[x]: X, r: R}, scales, dimensions) {
4545
if (!X) throw new Error(`missing channel: ${x}`);
46-
X = coerceNumbers(valueof(X.value, X.scale !== undefined ? scales[X.scale] : identity));
46+
X = coerceNumbers(valueof(X.value, scales[X.scale] || identity));
4747
const r = R ? undefined : this.r !== undefined ? this.r : options.r !== undefined ? number(options.r) : 3;
48-
if (R) R = coerceNumbers(valueof(R.value, R.scale !== undefined ? scales[R.scale] : identity));
48+
if (R) R = coerceNumbers(valueof(R.value, scales[R.scale] || identity));
4949
let [ky, ty] = anchor(dimensions);
5050
const compare = ky ? compareAscending : compareSymmetric;
5151
if (ky) ty += ky * ((R ? max(facets, I => max(I, i => R[i])) : r) + padding); else ky = 1;

src/transforms/hexbin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ export function hexbin(outputs = {fill: "count"}, inputs = {}) {
3535

3636
// Coerce the X and Y channels to numbers (so that null is properly treated
3737
// as an undefined value rather than being coerced to zero).
38-
X = coerceNumbers(valueof(X.value, X.scale !== undefined ? scales[X.scale] : identity));
39-
Y = coerceNumbers(valueof(Y.value, Y.scale !== undefined ? scales[Y.scale] : identity));
38+
X = coerceNumbers(valueof(X.value, scales[X.scale] || identity));
39+
Y = coerceNumbers(valueof(Y.value, scales[Y.scale] || identity));
4040

4141
// Extract the values for channels that are eligible for grouping; not all
4242
// marks define a z channel, so compute one if it not already computed. If z

0 commit comments

Comments
 (0)