Exemplo n.º 1
0
        private void DrawZeroAxises(ScatterPointCollection points)
        {
            if (ShowZeroAxises)
            {
                var calculator = new ScatterplotCalculator(points);

                if (calculator.MinX < 0 && calculator.MaxX > 0)
                {
                    var x1 = CanvasCalculator.GetX(0);
                    var x2 = x1;
                    var y1 = CanvasCalculator.GetY(calculator.MinY);
                    var y2 = CanvasCalculator.GetY(calculator.MaxY);

                    _zeroVerticalLine = new Line()
                    {
                        X1 = x1,
                        X2 = x2,
                        Y1 = y1,
                        Y2 = y2,
                        StrokeThickness = 0.5,
                        StrokeDashArray = new DoubleCollection(new Double[] { 2, 4 }),
                        Stroke          = Brushes.Black
                    };

                    mainCanvas.Children.Add(_zeroVerticalLine);
                }

                if (calculator.MinY < 0 && calculator.MaxY > 0)
                {
                    var x1 = CanvasCalculator.GetX(calculator.MinX);
                    var x2 = CanvasCalculator.GetX(calculator.MaxX);
                    var y1 = CanvasCalculator.GetY(0);
                    var y2 = y1;

                    _zeroHorizontalLine = new Line()
                    {
                        X1 = x1,
                        X2 = x2,
                        Y1 = y1,
                        Y2 = y2,
                        StrokeThickness = 0.5,
                        StrokeDashArray = new DoubleCollection(new Double[] { 2, 4 }),
                        Stroke          = Brushes.Black
                    };

                    mainCanvas.Children.Add(_zeroHorizontalLine);
                }
            }
            else
            {
                if (_zeroHorizontalLine != null)
                {
                    mainCanvas.Children.Remove(_zeroHorizontalLine);
                }
                if (_zeroVerticalLine != null)
                {
                    mainCanvas.Children.Remove(_zeroVerticalLine);
                }
            }
        }
Exemplo n.º 2
0
        public void Init(ScatterPointCollection points, Outliers outliers, string labelX, string lableY)
        {
            Reset();

            _lableX   = labelX.ToUpperFirstLetter();
            _lableY   = lableY.ToUpperFirstLetter();
            _points   = points;
            _outliers = outliers;
        }
Exemplo n.º 3
0
        public void Init(string labelX, string lableY, ScatterPointCollection points)
        {
            ResetCanvas();

            _lableX = labelX;
            _lableY = lableY;
            _points = points;

            Draw();
        }
Exemplo n.º 4
0
        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            var f         = new ThreeSigmaOutliersFinder(_points.Select(p => p.Y));
            var outliersY = f.Find();

            f = new ThreeSigmaOutliersFinder(_points.Select(p => p.X));
            var outliersX = f.Find();

            _points = new ScatterPointCollection(_points.Where(p => outliersY.Contains(p.Y) == false));
            _points = new ScatterPointCollection(_points.Where(p => outliersX.Contains(p.X) == false));

            ResetCanvas();
            Draw();
        }
Exemplo n.º 5
0
        private void DrawPoints(ScatterPointCollection points, bool drawOutliers)
        {
            IEnumerable <double> outliersY = new Double[0];
            IEnumerable <double> outliersX = new Double[0];

            if (drawOutliers)
            {
                var f = new ThreeSigmaOutliersFinder(points.Select(p => p.Y));
                outliersY = f.Find();
                f         = new ThreeSigmaOutliersFinder(points.Select(p => p.X));
                outliersX = f.Find();
            }

            var calculator = new ScatterplotCalculator(points);

            foreach (var p in points)
            {
                var color = new ColorPicker().Pick(p.Group);
                var brush = new SolidColorBrush(color);

                var ellipse = new Ellipse()
                {
                    Fill = brush, Height = 10, Width = 10
                };

                if (Math.Abs(p.SubGroup) > 1)
                {
                    ellipse.Stroke          = new SolidColorBrush(new ColorPicker().RevertColor(color));
                    ellipse.StrokeThickness = 2;
                }

                if (outliersY.Contains(p.Y))
                {
                    ellipse.Height = 20;
                    ellipse.Width  = 20;
                }

                if (outliersX.Contains(p.X))
                {
                    ellipse.Height = 20;
                    ellipse.Width  = 20;
                }

                Canvas.SetLeft(ellipse, CanvasCalculator.GetX(p.X) - 5);
                Canvas.SetTop(ellipse, CanvasCalculator.GetY(p.Y) - 5);
                ellipse.DataContext = p;
                mainCanvas.Children.Add(ellipse);
            }
        }