过于平淡的折线图,总是觉得不能够更好的表达数据的内涵。如下做个对比
A图
B图
对比A图和B图,哪个表达的重点更清晰呢?那必然是B图了,B图的特点是把最高的n个数字用不一样的图标展示了,起到了一目了然的效果。那么问题来来了?
怎么从一组数据中计算出这个分界点呢?
下面提供两个参考的算法:
平均数:是指一组数据中所有数据之和再除以数据的个数,它是反映数据集中趋势的一项指标。
中位数:把一组数据按从小到大的顺序排列,在中间的一个数字(或两个数字的平均值)叫做这组数据的中位数。
但是我们会发现平均值可以被极端数据影响,表示平均水平,中位数表示中间水平。所以这里要用的是中位数的算法。
写了一个中位数的函数
//中位数
function mid_num($arr)
{
//排序
sort($data);
$cnt=count($data);
if($cnt%2==0)
{
$x1=$cnt/2-1;
$x2=($cnt/2+1)-1;
return ($data[$x1]+$data[$x2])/2;
}else{
$id=round($cnt/2);
return $data[$id-1];
}
}

