Skip to content

Commit f37fd52

Browse files
committed
Add d3.scale.identity. Fixes d3#483.
1 parent b9170fb commit f37fd52

4 files changed

Lines changed: 66 additions & 5 deletions

File tree

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ d3.scale.js: \
129129
src/scale/ordinal.js \
130130
src/scale/category.js \
131131
src/scale/quantile.js \
132-
src/scale/quantize.js
132+
src/scale/quantize.js \
133+
src/scale/identity.js
133134

134135
d3.svg.js: \
135136
src/svg/svg.js \

d3.v2.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2962,6 +2962,36 @@ function d3_scale_quantize(x0, x1, range) {
29622962

29632963
return rescale();
29642964
}
2965+
d3.scale.identity = function() {
2966+
return d3_scale_identity([0, 1]);
2967+
};
2968+
2969+
function d3_scale_identity(domain) {
2970+
2971+
function identity(x) { return x; }
2972+
2973+
identity.invert = identity;
2974+
2975+
identity.domain = identity.range = function(x) {
2976+
if (!arguments.length) return domain;
2977+
domain = x;
2978+
return identity;
2979+
};
2980+
2981+
identity.ticks = function(m) {
2982+
return d3_scale_linearTicks(domain, m);
2983+
};
2984+
2985+
identity.tickFormat = function(m) {
2986+
return d3_scale_linearTickFormat(domain, m);
2987+
};
2988+
2989+
identity.copy = function() {
2990+
return d3_scale_identity(domain);
2991+
};
2992+
2993+
return identity;
2994+
}
29652995
d3.svg = {};
29662996
d3.svg.arc = function() {
29672997
var innerRadius = d3_svg_arcInnerRadius,

d3.v2.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/scale/identity.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
d3.scale.identity = function() {
2+
return d3_scale_identity([0, 1]);
3+
};
4+
5+
function d3_scale_identity(domain) {
6+
7+
function identity(x) { return x; }
8+
9+
identity.invert = identity;
10+
11+
identity.domain = identity.range = function(x) {
12+
if (!arguments.length) return domain;
13+
domain = x;
14+
return identity;
15+
};
16+
17+
identity.ticks = function(m) {
18+
return d3_scale_linearTicks(domain, m);
19+
};
20+
21+
identity.tickFormat = function(m) {
22+
return d3_scale_linearTickFormat(domain, m);
23+
};
24+
25+
identity.copy = function() {
26+
return d3_scale_identity(domain);
27+
};
28+
29+
return identity;
30+
}

0 commit comments

Comments
 (0)