Ejemplo n.º 1
0
        protected override void Postprocess(IDictionary <object, HistogramSeries> seriesSet)
        {
            if (_data == null || _data.Count == 0)
            {
                return;
            }

            _intervals = GetHistogramInterval(_data.Min(), _data.Max(), _data.Count);

            foreach (var entry in seriesSet)
            {
                var series = entry.Value;
                if (series.Items.Count > 0)
                {
                    throw new ArgumentException("-Data and the other data items cannot be specify at the same time");
                }

                // Grouping is not supported in HistogramSeries
                var bins = HistogramSeriesHelpers.Collect(_data, _intervals, _normalize);

                var s = _intervals.AdjustedLower;
                for (var i = 0; i < _intervals.BinCount; ++i)
                {
                    var item = new HistogramItem(s, s + _intervals.BinWidth, bins[i] * _intervals.BinWidth);
                    series.Items.Add(item);
                    s += _intervals.BinWidth;
                }
            }
        }
Ejemplo n.º 2
0
        public void TestBinWidth()
        {
            var data = new[] { 11, 22, 33, 44, 55 };

            var min = data.Min();
            var max = data.Max();

            var binCount = HistogramSeriesHelpers.GetBinCount(min, max, data.Length);
            var h        = HistogramSeriesHelpers.GetHistogramIntervalFromBinCount(min, max, binCount);

            Assert.AreEqual(3, binCount);

            Assert.AreEqual(20, h.BinWidth);
            Assert.AreEqual(0, h.AdjustedLower);
            Assert.AreEqual(60, h.AdjustedUpper);
        }
Ejemplo n.º 3
0
        protected HistogramInterval GetHistogramInterval(double min, double max, int dataCount)
        {
            HistogramInterval h;

            if (double.IsNaN(_binWidth))
            {
                if (_binCount == -1)
                {
                    _binCount = HistogramSeriesHelpers.GetBinCount(min, max, dataCount);
                }
                h = HistogramSeriesHelpers.GetHistogramIntervalFromBinCount(min, max, _binCount);
            }
            else
            {
                h = HistogramSeriesHelpers.GetHistogramIntervalFromBinWidth(min, max, _binWidth);
            }

            return(h);
        }
Ejemplo n.º 4
0
        protected override void Postprocess(IDictionary <object, ColumnSeries> seriesSet)
        {
            if (_data.Count == 0)
            {
                return;
            }

            var h = GetHistogramInterval(_data.Min(), _data.Max(), _data.Count);

            SetCategories(h);

            foreach (var entry in seriesSet)
            {
                var series = entry.Value;
                var bins   = HistogramSeriesHelpers.Collect(_seriesData[series], h, _normalize);

                for (var i = 0; i < h.BinCount; ++i)
                {
                    series.Items.Add(new ColumnItem(bins[i], i));
                }
            }
        }