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; } }
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(); }