1
d3.scale.pow = function() {
2
return d3_scale_pow(d3.scale.linear(), 1);
5
function d3_scale_pow(linear, exponent) {
6
var powp = d3_scale_powPow(exponent),
7
powb = d3_scale_powPow(1 / exponent);
10
return linear(powp(x));
13
scale.invert = function(x) {
14
return powb(linear.invert(x));
17
scale.domain = function(x) {
18
if (!arguments.length) return linear.domain().map(powb);
19
linear.domain(x.map(powp));
23
scale.ticks = function(m) {
24
return d3_scale_linearTicks(scale.domain(), m);
27
scale.tickFormat = function(m) {
28
return d3_scale_linearTickFormat(scale.domain(), m);
31
scale.nice = function() {
32
return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
35
scale.exponent = function(x) {
36
if (!arguments.length) return exponent;
37
var domain = scale.domain();
38
powp = d3_scale_powPow(exponent = x);
39
powb = d3_scale_powPow(1 / exponent);
40
return scale.domain(domain);
43
scale.copy = function() {
44
return d3_scale_pow(linear.copy(), exponent);
47
return d3_scale_linearRebind(scale, linear);
50
function d3_scale_powPow(e) {
52
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);