public static double[] getNaturalBreak4(float[] f)
{
if (f == null) { return null; }
int[] frequency = null;
double[] d = new double[f.Length];
System.Array.Sort(f);
Dictionary<float, int> dic = new Dictionary<float, int>();//声明一个键值对数组dic
for (int i = 0; i < f.Length; i++)//循环字符数组中每个字符
{
d[i] = f[i];
if (dic.ContainsKey(f[i])) //已经包含指定的字符了
{
dic[f[i]] += 1;//将对应的dic的值+1
}
else//如果没有存在此字符
{
dic.Add(f[i], 1);//将此字符添加到dic键中,并初始化dic值为1
}
}
frequency = new int[f.Length];
for (int i = 0; i < f.Length; i++)
{
frequency[i] = dic[f[i]];
}
// //分类
IClassifyGEN pClassify = new NaturalBreaksClass();
pClassify.Classify(d, frequency, 5);
double[] ClassNum = pClassify.ClassBreaks as double[];
return ClassNum;
}
注意!! 分类方法要求输入doulearry 和longarry,但是! 如果类型是long会无法输出结果,因此
输入类型应该为
double【】
int【】
该代码段展示了一个实现自然断点分类(Jenks Natural Breaks)的方法。它接受一个浮点数数组,对其进行排序,统计每个数值的频率,然后使用IClassifyGEN接口进行分类,返回分类断点。注意,输入必须为double和int数组,long类型可能导致错误。
2350

被折叠的 条评论
为什么被折叠?



