Поиск Гистограммы алгоритм Binning для десятичных данных

Я должен генерировать мусорные ведра в целях вычислить гистограмму. Язык является C#. В основном я должен взять в массиве десятичных чисел и генерировать график гистограммы из тех.

Не были в состоянии найти, что достойная библиотека делает это напрямую поэтому теперь, я просто ищу или библиотеку или алгоритм, чтобы помочь мне сделать binning данных.

Так...

  • Есть ли какие-либо библиотеки C# там, которые возьмут в массиве десятичных данных и произведут сгруппированную гистограмму?
  • Есть ли универсальный алгоритм для создания мусорных ведер, которые будут использоваться в сгенерированном гистограмма?
9
задан Jay Stevens 5 March 2010 в 15:40
поделиться

1 ответ

Вот простая функция корзины, которую я использую. К сожалению, универсальные шаблоны .NET не поддерживают ограничение числового типа, поэтому вам придется реализовать другую версию следующей функции для decimal, int, double и т. Д.

public static List<int> Bucketize(this IEnumerable<decimal> source, int totalBuckets)
{
    var min = source.Min();
    var max = source.Max();
    var buckets = new List<int>();

    var bucketSize = (max - min) / totalBuckets;
    foreach (var value in source)
    {
        int bucketIndex = 0;
        if (bucketSize > 0.0)
        {
            bucketIndex = (int)((value - min) / bucketSize);
            if (bucketIndex == totalBuckets)
            {
                bucketIndex--;
            }
        }
        buckets[bucketIndex]++;
    }
    return buckets;
}
15
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: