MCPcopy Create free account
hub / github.com/idank/explainshell / d3_scale_linear

Function d3_scale_linear

explainshell/web/static/js/d3.v3.js:6400–6451  ·  view source on GitHub ↗
(domain, range, interpolate, clamp)

Source from the content-addressed store, hash-verified

6398 return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
6399 };
6400 function d3_scale_linear(domain, range, interpolate, clamp) {
6401 var output, input;
6402 function rescale() {
6403 var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
6404 output = linear(domain, range, uninterpolate, interpolate);
6405 input = linear(range, domain, uninterpolate, d3_interpolate);
6406 return scale;
6407 }
6408 function scale(x) {
6409 return output(x);
6410 }
6411 scale.invert = function(y) {
6412 return input(y);
6413 };
6414 scale.domain = function(x) {
6415 if (!arguments.length) return domain;
6416 domain = x.map(Number);
6417 return rescale();
6418 };
6419 scale.range = function(x) {
6420 if (!arguments.length) return range;
6421 range = x;
6422 return rescale();
6423 };
6424 scale.rangeRound = function(x) {
6425 return scale.range(x).interpolate(d3_interpolateRound);
6426 };
6427 scale.clamp = function(x) {
6428 if (!arguments.length) return clamp;
6429 clamp = x;
6430 return rescale();
6431 };
6432 scale.interpolate = function(x) {
6433 if (!arguments.length) return interpolate;
6434 interpolate = x;
6435 return rescale();
6436 };
6437 scale.ticks = function(m) {
6438 return d3_scale_linearTicks(domain, m);
6439 };
6440 scale.tickFormat = function(m, format) {
6441 return d3_scale_linearTickFormat(domain, m, format);
6442 };
6443 scale.nice = function() {
6444 d3_scale_nice(domain, d3_scale_linearNice);
6445 return rescale();
6446 };
6447 scale.copy = function() {
6448 return d3_scale_linear(domain, range, interpolate, clamp);
6449 };
6450 return rescale();
6451 }
6452 function d3_scale_linearRebind(scale, linear) {
6453 return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
6454 }

Callers 1

d3.v3.jsFile · 0.85

Calls 4

rescaleFunction · 0.85
d3_scale_linearTicksFunction · 0.85
d3_scale_niceFunction · 0.85

Tested by

no test coverage detected