示例#1
0
        private void selectDefaultChartPoint(long caseId)
        {
            var defaultPoint = chartValues.FirstOrDefault(a => a.CaseId == caseId); //Find the chart point from the chart values by caseId

            if (defaultPoint != null)
            {
                previousSelected.Selected = false;
                defaultPoint.Selected     = true;
                previousSelected          = defaultPoint;
            }
        }
示例#2
0
        public SingleKeySizeForm(int size, IEnumerable <XY> points)
        {
            InitializeComponent();
            _size = size;

            var mapper = Mappers.Xy <XY>()
                         .X(model => model.NDouble)
                         .Y(model => model.TotDouble)
                         .Fill(model => model.Y >= ChartValues.GroupBy(p => p.Y)
                               .OrderByDescending(gp => gp.Count()).Select(p => p.Key).FirstOrDefault()
                    ? new SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 150, 0))
                    : model.Y < ChartValues.GroupBy(p => p.Y)
                               .OrderByDescending(gp => gp.Count()).Select(p => p.Key).FirstOrDefault()
                    ? new SolidColorBrush(System.Windows.Media.Color.FromRgb(200, 0, 0))
                    : null);

            Charting.For <XY>(mapper);

            ChartValues        = new ChartValues <XY>();
            RegressionValues   = new ChartValues <ObservablePoint>();
            UpperValues        = new ChartValues <ObservablePoint>();
            LowerValues        = new ChartValues <ObservablePoint>();
            NToNValues         = new ChartValues <ObservablePoint>();
            XAxis              = new ChartValues <ObservablePoint>();
            YAxis              = new ChartValues <ObservablePoint>();
            versusChart.Series = new SeriesCollection
            {
                new ScatterSeries
                {
                    Values        = ChartValues,
                    PointGeometry = DefaultGeometries.Diamond
                },
                new LineSeries
                {
                    Values        = RegressionValues,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(200, 0, 0))
                },
                new LineSeries
                {
                    Values        = UpperValues,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(200, 0, 0))
                },
                new LineSeries
                {
                    Values        = LowerValues,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(200, 0, 0))
                },
                new LineSeries
                {
                    Values        = NToNValues,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 0, 200))
                },
                new LineSeries
                {
                    Values        = XAxis,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 0, 0))
                },
                new LineSeries
                {
                    Values        = YAxis,
                    PointGeometry = null,
                    Fill          = Brushes.Transparent,
                    Stroke        = new SolidColorBrush(System.Windows.Media.Color.FromRgb(0, 0, 0))
                }
            };
            versusChart.DataClick += (sender, point) =>
            {
                var valuePoint = ChartValues.FirstOrDefault(v => v.NDouble == point.X && v.TotDouble == point.Y);
                if (valuePoint != null)
                {
                    Console.WriteLine(valuePoint.ToString());
                    Console.WriteLine("Range: " + _regression.GetPredictionInterval(valuePoint.NDouble, .99));
                }
            };
            versusChart.Zoom = ZoomingOptions.Xy;
            versusChart.DisableAnimations = true;
            versusChart.DataTooltip       = null;
            ChartValues.AddRange(points);

            CalculateRegression();

            graphTabPanel.SelectedIndexChanged += (sender, args) =>
            {
                if (graphTabPanel.SelectedIndex == 1)
                {
                    BuildHistogram();
                }
            };

            Timer = new Timer
            {
                Interval = 10000
            };
            Timer.Tick += (sender, args) => addButton.PerformClick();
        }