private static BoxPlotDataSeries <double, double> GetBoxSeries(IEnumerable <double> data) { var dataSeries = new BoxPlotDataSeries <double, double>(); dataSeries.Append(data, data, data.Select(x => x - 2.0), data.Select(x => x - 1.0), data.Select(x => x + 0.5), data.Select(x => x + 1.5)); return(dataSeries); }
public SeriesBindingViewModel() { var data = DataManager.Instance.GetSinewave(1.0, 0.5, PointsCount * 10, 5); var lineDataSeries = new XyDataSeries <double, double>(); lineDataSeries.Append(data.XData.Select(d => d * 5), data.YData); IEnumerable <BoxPoint> boxData = GetBoxPlotData().ToArray(); var boxDataSeries = new BoxPlotDataSeries <double, double>(); boxDataSeries.Append(boxData.Select(x => x.XValue), boxData.Select(x => x.Median), boxData.Select(x => x.Minimum), boxData.Select(x => x.LowerQuartile), boxData.Select(x => x.UpperQuartile), boxData.Select(x => x.Maximum)); EllipsePointMarker epm = new EllipsePointMarker { Width = 9, Height = 9, Fill = Colors.Transparent, Stroke = Colors.White, StrokeThickness = 2 }; RenderableSeriesViewModels = new ObservableCollection <IRenderableSeriesViewModel>() { new LineRenderableSeriesViewModel { DataSeries = lineDataSeries, StyleKey = "LineSeriesStyle" }, new XyScatterRenderableSeriesViewModel { DataSeries = lineDataSeries, PointMarker = epm }, new BoxPlotRenderableSeriesViewModel { DataSeries = boxDataSeries } }; }
public BoxPlotExampleView() { InitializeComponent(); this.Loaded += (sender, args) => { // Box data is a multi-dimensional table containing minimum, lower quartile, median, upper quartile, maximum Y values vs X IEnumerable <BoxPoint> boxData = GetBoxPlotData(10).ToArray(); var boxDataSeries = new BoxPlotDataSeries <DateTime, double>(); boxDataSeries.Append(boxData.Select(x => x.Date), boxData.Select(x => x.Median), boxData.Select(x => x.Minimum), boxData.Select(x => x.LowerQuartile), boxData.Select(x => x.UpperQuartile), boxData.Select(x => x.Maximum)); boxSeries.DataSeries = boxDataSeries; }; sciChart.ZoomExtents(); }