iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
1
AI & Data

D3.js資料視覺化的浪漫突進系列 第 29

Day29 D3js d3-random 方便產亂數的小工具

D3js d3-random 方便產亂數的小工具

用途

有時候Demo時或開發某些功能時,可能需要亂數產生,利用原生js太麻煩了,懶人就得用d3提供的亂數方法。

d3.randomInt

直接產出區間的一整數。

let r6 = d3.randomInt(6);

console.log(r6()); // 0-5
let r6 = d3.randomInt(1, 6);

console.log(r6()); // 1-5

d3.randomNormal

可指定期望值,以及標準差。

let r = d3.randomNormal(0.5, 0.13);

r();

d3.randomNormal

Irwin–Hall distribution 分布。

將12個服從均勻分布的隨機數相加可以產生服從參數為12的歐文–賀爾分布的隨機數,再減6,就得到近似服從標準正態分布的隨機數

let r = d3.randomIrwinHall(9);

random.source

可以給予一個種子數[0, 1],生成變數將會參照種子開始生成,將不會是隨機數。

const d3 = require("d3-random");
const seed = 0.44871573888282423; // any number in [0, 1)
const random = d3.randomNormal.source(d3.randomLcg(seed))(0, 1);

random(); // -0.6253955998897069

結論

很好用的API,其實大部分的d3.random都是針對特定統計相關開發使用,許多API在非資料統計計算相關可能用不上。

參考

d3-random
Irwin–Hall distribution


上一篇
Day28 D3js Diagram常見的兩點浪漫路徑
下一篇
Day30 D3js 浪漫突進的回顧及展望
系列文
D3.js資料視覺化的浪漫突進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言