d3-random
从各种分布中生成随机数。
Installing
如果你使用npm,请键入npm install d3-random
。否则,请下载最新版本。你也可以直接从d3js.org加载,作为standalone library(独立库)或D3 4.0的一部分来使用。支持AMD,CommonJS和vanilla环境。在vanilla环境下,会输出一个全局的d3
:
<script src="https://d3js.org/d3-random.v1.min.js"></script>
<script>
var random = d3.randomUniform(1, 10);
</script>
API Reference
d3.randomUniform([min, ][max])
返回一个用uniform distribution(均匀分布)生成随机数的函数。返回数字的最小值为min,最大值为max。如果不指定min,则默认为0;如果不指定max,则默认为1。例如:
d3.randomUniform(6)(); // Returns a number greater than or equal to 0 and less than 6.
d3.randomUniform(1, 5)(); // Returns a number greater than or equal to 1 and less than 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)
返回一个用Irwin–Hall distribution(欧文霍尔分布)和自变量n生成随机数的函数。
d3.randomExponential(lambda)
返回一个用exponential distribution(指数分布)和lambda生成随机数的函数;相当于Poisson process(泊松过程)中均值为1/lambda时事件发生的间隔时间。例如,一个事件平均每40个单位时间发生一次。
random.source(source)
返回用于生成随机数的同类型函数,但是给定的随机数生成器会替换Math.random用作随机数的来源。给定的随机数生成器必须和Math.random一样只返回[0,1)之间的值。给定随机数生成必须实现和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