source: node_modules/victory-vendor/lib-vendor/d3-scale/src/quantile.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.5 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = quantile;
7var _index = require("../../../lib-vendor/d3-array/src/index.js");
8var _init = require("./init.js");
9function quantile() {
10 var domain = [],
11 range = [],
12 thresholds = [],
13 unknown;
14 function rescale() {
15 var i = 0,
16 n = Math.max(1, range.length);
17 thresholds = new Array(n - 1);
18 while (++i < n) thresholds[i - 1] = (0, _index.quantileSorted)(domain, i / n);
19 return scale;
20 }
21 function scale(x) {
22 return x == null || isNaN(x = +x) ? unknown : range[(0, _index.bisect)(thresholds, x)];
23 }
24 scale.invertExtent = function (y) {
25 var i = range.indexOf(y);
26 return i < 0 ? [NaN, NaN] : [i > 0 ? thresholds[i - 1] : domain[0], i < thresholds.length ? thresholds[i] : domain[domain.length - 1]];
27 };
28 scale.domain = function (_) {
29 if (!arguments.length) return domain.slice();
30 domain = [];
31 for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
32 domain.sort(_index.ascending);
33 return rescale();
34 };
35 scale.range = function (_) {
36 return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
37 };
38 scale.unknown = function (_) {
39 return arguments.length ? (unknown = _, scale) : unknown;
40 };
41 scale.quantiles = function () {
42 return thresholds.slice();
43 };
44 scale.copy = function () {
45 return quantile().domain(domain).range(range).unknown(unknown);
46 };
47 return _init.initRange.apply(scale, arguments);
48}
Note: See TracBrowser for help on using the repository browser.