d3-random
以各种分布类型为基础生成随机数.
Installing
NPM:npm install d3-random
。也可以下载 latest release. 还可以直接从 d3js.org, 加载 standalone library 或作为 D3 4.0 的一部分引入. 支持 AMD, CommonJS 以及最基本的标签引入,通过标签引入会暴露 d3
全局变量:
<script src="https://d3js.org/d3-random.v1.min.js"></script>
<script>
var random = d3.randomUniform(1, 10);
</script>
Try d3-random in your browser.
API Reference
d3.randomUniform([min, ][max]) <>
返回一个服从uniform distribution(一般分布)的随机数生成函数。随机数区间最小值和最大值由 min 和 max 参数决定。如果没有指定 min 则默认为 0,如果没有指定 max 则默认为 1。例如:
d3.randomUniform(6)(); // 返回一个大于等于 0 且小于 6 的随机数.
d3.randomUniform(1, 5)(); // 返回一个大于等于 1 且小于 5 的随机数.
需要注意的是你也可以使用内置的 Math.random 函数来直接生成服从一般分布的数值,比如设定成一个 0 到 99(包含) 之间的整数,可以使用 Math.random() * 100 | 0
。
d3.randomNormal([mu][, sigma]) <>
返回一个服从 normal (Gaussian) distribution(标准高斯分布) 的随机数生成函数。期望值通过 mu 参数设置,标准差通过 sigma 参数设置。如果没有指定 mu 则默认为 0,如果没有指定 sigma 则默认为 1。
d3.randomLogNormal([mu][, sigma]) <>
返回一个服从 log-normal distribution(对数分布) 的随机数生成函数. 随机变量的自然对数期望值通过 mu 指定,标准差通过 sigma 指定。mu 默认为 0,sigma 默认为 1。
d3.randomBates(n) <>
返回一个服从 Bates distribution(贝茨分布) 的随机数生成函数,参数 n 表示独立变量个数。
d3.randomIrwinHall(n) <>
返回一个具有 n 个独立变量的服从 Irwin–Hall distribution(Irwin-Hall 分布) 的随机数生成函数。
d3.randomExponential(lambda) <>
返回一个服从 exponential distribution(指数分布) 的随机数生成函数。其中率参数为 lambda ;等价于给定时间区间内均值为 1 / lambda 的 Poisson process(泊松过程) 时间发生次数。例如,exponential(1/40) 表示在平均每 40 个单位时间内发生一次事件之间的随机时间。
random.source(source)
返回用于生成随机数的相同类型的函数,但给定的随机数生成器源用作随机数的来源而不是Math.random。给定的随机数生成器必须实现与 Math.random 相同的接口并且输出值范围为 [0, 1). 当待选随机数生成器优于 Math.random 时这个方法会很有用。比如:
var d3 = require("d3-random"),
seedrandom = require("seedrandom"),
random = d3.randomNormal.source(seedrandom("a22ebc7c488a3a47"))(0, 1);
random(); // 0.9744193494813501