运用 SpreadJS 中的图表和公式建立贝尔曲线(Bell Curve)

媒介 | 题目背景

贝尔曲线(也称为正态散布、Bell Curve)是变量的罕见散布范例。贝尔曲线有很多用例,在统计学中,钟形曲线用于模仿林林总总的实在数据。在金融行业,剖析师和投资者在剖析证券的报答或团体市场敏感度时运用正态几率散布。

在这篇文章中,我将议论如安在Spread.Sheets中设想钟形曲线。我们将运用散点图和内置公式绘制曲线。

详细完成

让我们用一些公司员工评级的假定数据填写Spread.Sheets。

在Spread.Sheets中添补数据的代码以下:

spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 });
var dataSheet = spread.sheets[0];

dataSheet.setValue(0, 0, 'Employee Name', GC.Spread.Sheets.SheetArea.colHeader);
dataSheet.setValue(0, 1, 'Employee Ratings', GC.Spread.Sheets.SheetArea.colHeader);
dataSheet.setValue(0, 2, 'Normal Distribution', GC.Spread.Sheets.SheetArea.colHeader);
dataSheet.setValue(0, 3, 'Mean', GC.Spread.Sheets.SheetArea.colHeader);
dataSheet.setValue(0, 4, 'Standard Deviation', GC.Spread.Sheets.SheetArea.colHeader);

for (var i = 0; i <= 99; i++)
{               
    dataSheet.setValue(i, 0, "Employee" +" "+ i);
}
for (var i = 0; i <= 99; i++) {             

    dataSheet.setValue(i, 1, Math.floor(Math.random() * (50 - 10 + 1)) + 10);
}

因为钟形曲线显现正态散布,我们将运用SpreadJS的Norm.Dist()来盘算数据点。

然则,正态散布须要均值和标准差来盘算散布值。因而,让我们起首取得这些值的均值和标准差。

请注意,须要按递增递次对值举行排序,以找到准确的均值。

spread.getActiveSheet().sortRange(-1, -1, -1, -1, true, [{ index: 1, ascending: true }]);

让我们盘算平均值和标准差:

dataSheet.setFormula(0, 3, "=AVERAGE(B1:B100)", GC.Spread.Sheets.SheetArea.viewport);
dataSheet.setFormula(0, 4, "=STDEV(B1:B100)", GC.Spread.Sheets.SheetArea.viewport);

让我们将这些值放在Norm.Dist公式中以取得散布:

for (var i = 0; i <= 99; i++) {
    var j = i + 1;
    dataSheet.setFormula(i, 2, "=NORM.DIST(B" + j + ",D1,E1,FALSE) ", GC.Spread.Sheets.SheetArea.viewport);
}

如今最主要的部份是运用盘算的散布来绘制钟形曲线图。在SpreadJS中,我们将Scatter图表的数据局限设置为这些散布值:

var chartType = GC.Spread.Sheets.Charts.ChartType.xyScatter;
var chart = dataSheet.charts.add('Bell Curve', chartType, 280, 30, 700, 390, "B1:C100");

钟形曲线显现的正态散布效果以下所示:
《运用 SpreadJS 中的图表和公式建立贝尔曲线(Bell Curve)》

SpreadJS | 下载试用

纯前端表格控件SpreadJS,是市面上规划与功用都与 Excel 高度相似的一款表格控件,全中文操纵界面,适用于.NET、Java、挪动端等多个平台的类 Excel 数据开辟,备受华为、中通、民航遨游飞翔学院等国内知名企业客户喜爱。

    原文作者:葡萄城控件
    原文地址: https://segmentfault.com/a/1190000018698987
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞