首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于可视化的假分布数据

用于可视化的假分布数据
EN

Stack Overflow用户
提问于 2012-02-27 20:39:37
回答 2查看 2.5K关注 0票数 1

我想为我的可视化项目(在JavaScript中)创建一些“模拟数据”。

优选地,我想根据一些概率分布函数(即正态或对数正态),将分配给具有z步长区间y不同群

示例:

使用正常密度函数,精确分配100个单元给组0-5000,5000-10000,.,75000-80000 .

应该呈现如下内容:

代码语言:javascript
复制
binNames = [ "0-5000", "5000-10000", [...] ]
binData = [ 0,0,0,1,2,10,12,14,12,10 [...] ] //SUM = 100

(如果我能用一个简单的种子参数引入一些偏斜,那将是一个额外的好处。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-14 05:48:25

D3.js library有一个有用的工具,d3.random.normal (referencecode)。即使不使用D3,也可以将函数复制到自己的代码中。它返回一个生成器函数,它将根据所提供的均值和标准差产生一个正态分布的随机数。

使用该函数,您可以以所需的格式生成一些随机数据,如下所示:

代码语言:javascript
复制
// data generator
var bins = 16,
    target = 100,
    step = 5000,
    max = bins * step,
    stddev = max * .15,
    data = [],
    generator = d3.random.normal(max/2, stddev),
    x=0, y=0;

// set up bins
while (x++ < bins) data.push(0);
// add numbers
while (y++ < target) {
    // get a new number
    var number = generator();
    // don't allow numbers outside the desired range
    number = ~~Math.max(0, Math.min(number, max));
    // increment the bin
    bin = ~~(number / max * bins);
    data[bin]++;
}

我做了一个小的动画直方图作为一个例子:http://bl.ocks.org/2034281

票数 9
EN

Stack Overflow用户

发布于 2012-02-27 20:50:01

您正在寻找的算法是kd树或树地图。一个kd-树降低了维度的复杂性。有一个免费的jquery可以下载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9471939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档