一、前言
在对数据可视化展示的时候,有时候需要对数据进行分段显示,如从0-10000的数据,分成5段,根据实际的数据情况可以进行等距分段,如0-2000,2000-4000….,但是很多时候,数据的分布没有这么平均,如果按照最大值进行等距离分段,整个信息的展示就不太合理,根据指数函数的特征,实现了一种指数分段的方法。
二、方法
关于指数函数的介绍,参考百度百科:指数函数
这里附上C#实现的方法
public static double[] GetStepValue(int maxv)
{
double value = Math.Log(maxv, 8);
//这里默认返回的5段
double[] steps = new double[] { Math.Pow(3, value), Math.Pow(4, value),
Math.Pow(5, value), Math.Pow(6, value), Math.Pow(7, value) };
return steps;
}
三、实现
上面简单的函数,只是一种区别于等距分段的方法,分段的值区间,可能要根据数据的实际情况做微调,主要是跟用户的需求和可视化的需求来定的,下图为分段后的北京动态人口网格信息: