让我尽力解释这里提出的问题:
我试图在Codeigniter应用程序中绘制正态分布图(也就是钟形曲线)。对于图表应用程序,我使用的是Google Graph。
现在,让我描述一下我为了获得X-Y轴值和生成图表所做的工作:
i)按升序排列从相关db表中获取的值(将它们视为X值)
ii)根据这些X值计算Y值...在这里,我使用以下mysql函数生成那些Y值:
BEGIN
DECLARE x FLOAT;
DECLARE z FLOAT;
DECLARE t FLOAT;
DECLARE ans FLOAT;
DECLARE returnvalue DECIMAL(10,5);
SET z = (val-mean)/sigma;
IF val < z THEN SET x= 0.5-z;
ELSEIF val = z THEN SET x = 0.5;
ELSE SET x= 0.5+z;
END IF;
SET returnvalue = (1/(sigma * SQRT( 2.0 * 3.14159265358979 ))) * EXP(-((val-mean)*(val-mean)) / (2*(sigma*sigma)));
RETURN returnvalue;
END
输入参数是:val FLOAT,表示FLOAT,sigma FLOAT
其中,表示 = SELECT FORMAT(avg(a。val
),2)as avg_value FROM tableX
a,
和 sigma = SELECT FORMAT(stddev(b。val
),2)AS std_value FROM tableX
b
iii)最后,当我使用google-graph areaChart绘制这些值时,它并没有生成一个平滑的值,这是本案的要求。
以下是我们正在处理的图表:图表#1是我的要求,图表#2是我得到的,同时在Google-Graph中绘制这些点。
所以,请让我知道我哪里出错...是我在生成正态分布值的mysql函数还是在图表绘图中?