前言|问题背景钟形曲线(也称为正态分布、钟形曲线)是一种常见的变量分布类型。钟形曲线有很多用例。在统计学中,钟形曲线用于模拟各种真实数据。在金融行业,分析师和投资者在分析证券的回报或整体市场敏感性时使用正态概率分布。在本文中,我将讨论如何在Spread.Sheets中设计钟形曲线。我们将使用散点图和内置公式绘制曲线。实施让我们用一些关于公司员工评级的假设数据填充Spread.Sheets。在Spread.Sheets中填充数据的代码如下:spread=newGC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:2});vardataSheet=spread.sheets[0];数据表。setValue(0,0,'员工姓名',GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0,1,'员工评级',GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0,2,'正态分布',GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0,3,'平均值',GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0,4,'标准偏差',GC.Spread.Sheets.SheetArea.colHeader);for(vari=0;i<=99;i++){dataSheet.setValue(i,0,"Employee"+""+i);}for(vari=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(vari=0;i<=99;i++){varj=i+1;dataSheet.setFormula(i,2,"=NORM.DIST(B"+j+",D1,E1,FALSE)",GC.Spread.Sheets.SheetArea.viewport);}现在最重要的部分是使用计算分布绘制钟形曲线图。在SpreadJS中,我们将散点图的数据范围设置为这些分布值:varchartType=GC.Spread.Sheets.Charts.ChartType.xyScatter;varchart=dataSheet.charts.add('BellCurve',chartType,280,30,700,390,"B1:C100");钟形曲线显示的正态分布结果如下:下载试用纯前端表格控件SpreadJS,其布局和功能与市面上的Excel表格控件高度相似,全中文操作界面,适用于.NET、Java等多平台类Excel数据开发,和移动终端,受到华为、中通、民航飞行学院等国内知名企业客户的青睐。
