private void SetupRenderableSeries() { var dataManager = DataManager.Instance; var priceBars = dataManager.GetPriceDataIndu(); var mountainDataSeries = new XyDataSeries <double, double> { SeriesName = "Mountain Series" }; var lineDataSeries = new XyDataSeries <double, double> { SeriesName = "Line Series" }; var columnDataSeries = new XyDataSeries <double, long> { SeriesName = "Column Series" }; var candlestickDataSeries = new OhlcDataSeries <double, double> { SeriesName = "Candlestick Series" }; var xValues = Enumerable.Range(0, priceBars.Count).Select(x => (double)x).ToArray(); mountainDataSeries.Append(xValues, priceBars.LowData.Select(x => x - 1000d)); lineDataSeries.Append(xValues, dataManager.ComputeMovingAverage(priceBars.CloseData, 50)); columnDataSeries.Append(xValues, priceBars.VolumeData); candlestickDataSeries.Append(xValues, priceBars.OpenData, priceBars.HighData, priceBars.LowData, priceBars.CloseData); var mountainRenderableSeries = new SCIFastMountainRenderableSeries { DataSeries = mountainDataSeries, YAxisId = "PrimaryAxisId" }; var lineRenderableSeries = new SCIFastLineRenderableSeries { DataSeries = lineDataSeries, YAxisId = "PrimaryAxisId" }; var columnRenderableSeries = new SCIFastColumnRenderableSeries { DataSeries = columnDataSeries, YAxisId = "SecondaryAxisId" }; var candlestickRenderableSeries = new SCIFastCandlestickRenderableSeries { DataSeries = candlestickDataSeries, YAxisId = "PrimaryAxisId" }; using (Surface.SuspendUpdates()) { Surface.RenderableSeries.Add(mountainRenderableSeries); Surface.RenderableSeries.Add(lineRenderableSeries); Surface.RenderableSeries.Add(columnRenderableSeries); Surface.RenderableSeries.Add(candlestickRenderableSeries); Surface.ChartModifiers = new SCIChartModifierCollection { new SCILegendModifier { ShowCheckBoxes = false }, new SCICursorModifier(), new SCIZoomExtentsModifier() }; } }
private void CreateOverviewChart(out SCIBoxAnnotation leftAreaAnnotation, out SCIBoxAnnotation rightAreaAnnotation) { // Create an XAxis and YAxis for our chart var xAxis1 = new SCICategoryDateTimeAxis { AutoRange = SCIAutoRange.Always }; var yAxis1 = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), AutoRange = SCIAutoRange.Always }; // Create the mountain chart for the overview , using the same price data but zoomed out var mountainSeries = new SCIFastMountainRenderableSeries { DataSeries = _ohlcDataSeries, AreaStyle = new SCILinearGradientBrushStyle(0x883a668f, 0xff20384f, SCILinearGradientDirection.Vertical) }; // Create some annotations to visualize the selected area on the main price chart leftAreaAnnotation = new SCIBoxAnnotation { CoordinateMode = SCIAnnotationCoordinateMode.RelativeY, Y1Value = 0, Y2Value = 1, Style = new SCIBoxAnnotationStyle { FillBrush = new SCISolidBrushStyle(0x33FFFFFF), }, }; rightAreaAnnotation = new SCIBoxAnnotation { CoordinateMode = SCIAnnotationCoordinateMode.RelativeY, Y1Value = 0, Y2Value = 1, Style = new SCIBoxAnnotationStyle { FillBrush = new SCISolidBrushStyle(0x33FFFFFF), }, }; // Populate the chart with Axis, RenderableSeries. The chart automatically updates when any property changes using (OverviewSurface.SuspendUpdates()) { OverviewSurface.XAxes.Add(xAxis1); OverviewSurface.YAxes.Add(yAxis1); OverviewSurface.RenderableSeries.Add(mountainSeries); OverviewSurface.Annotations.Add(leftAreaAnnotation); OverviewSurface.Annotations.Add(rightAreaAnnotation); } }
protected override void InitExampleInternal() { Surface = new SCIChartSurface(_exampleViewLayout.SciChartSurfaceView); StyleHelper.SetSurfaceDefaultStyle(Surface); var priceData = DataManager.Instance.GetPriceDataIndu(); var dataSeries = new XyDataSeries <DateTime, double>(); dataSeries.DataDistributionCalculator = new SCIUserDefinedDistributionCalculator(); dataSeries.Append(priceData.TimeData, priceData.CloseData); var axisStyle = StyleHelper.GetDefaultAxisStyle(); var xAxis = new SCIDateTimeAxis { IsXAxis = true, GrowBy = new SCIDoubleRange(0.1, 0.1), Style = axisStyle, AxisId = "xAxis" }; var yAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), Style = axisStyle, AxisId = "yAxis" }; var renderSeries = new SCIFastMountainRenderableSeries { DataSeries = dataSeries, XAxisId = xAxis.AxisId, YAxisId = yAxis.AxisId, Style = { AreaBrush = new SCIBrushLinearGradient(0xAAFF8D42, 0x88090E11, SCILinearGradientDirection.Vertical), BorderPen = new SCIPenSolid(0xaaffc9a8, 0.7f) } }; Surface.AttachAxis(xAxis, true); Surface.AttachAxis(yAxis, false); Surface.AttachRenderableSeries(renderSeries); Surface.ChartModifier = new SCIModifierGroup(new ISCIChartModifierProtocol[] { new SCIZoomPanModifier(), new SCIPinchZoomModifier(), new SCIZoomExtentsModifier() }); Surface.InvalidateElement(); }
void CreateRenderableSeries() { _lineRenderableSeries = new SCIFastLineRenderableSeries(); _lineRenderableSeries.DataSeries = _lineDataSeries; _lineRenderableSeries.YAxisId = "firstYAxis"; _scatterRenderableSeries = new SCIXyScatterRenderableSeries(); _scatterRenderableSeries.DataSeries = _scatterDataSeries; _scatterRenderableSeries.YAxisId = "secondaryYAxis"; _mountainRenderableSeries = new SCIFastMountainRenderableSeries(); _mountainRenderableSeries.DataSeries = _lineDataSeries; _mountainRenderableSeries.YAxisId = "firstYAxis"; _surfaceTop.RenderableSeries.Add(_lineRenderableSeries); _surfaceTop.RenderableSeries.Add(_scatterRenderableSeries); _surfaceBottom.RenderableSeries.Add(_mountainRenderableSeries); }
protected override void InitExample() { var xAxis = new SCIDateTimeAxis { GrowBy = new SCIDoubleRange(0.1, 0.1) }; var yAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1) }; var priceData = DataManager.Instance.GetPriceDataIndu(); var dataSeries = new XyDataSeries <DateTime, double> { DataDistributionCalculator = new SCIUserDefinedDistributionCalculator() }; dataSeries.Append(priceData.TimeData, priceData.CloseData); var renderableSeries = new SCIFastMountainRenderableSeries { DataSeries = dataSeries, StrokeStyle = new SCISolidPenStyle(0xAAFFC9A8, 2f), AreaStyle = new SCILinearGradientBrushStyle(0xAAFF8D42, 0x88090E11, SCILinearGradientDirection.Horizontal), }; var animation = new SCIWaveRenderableSeriesAnimation(3, SCIAnimationCurve.EaseOut); animation.StartAfterDelay(0.3f); renderableSeries.AddAnimation(animation); using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(renderableSeries); Surface.ChartModifiers = new SCIChartModifierCollection { new SCIZoomPanModifier(), new SCIPinchZoomModifier(), new SCIZoomExtentsModifier() }; } }
protected override void InitExample() { var xAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), VisibleRange = new SCIDoubleRange(150, 180) }; var yRightAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0.1, 0.1), AxisAlignment = SCIAxisAlignment.Right, AutoRange = SCIAutoRange.Always, AxisId = "PrimaryAxisId", Style = { DrawMajorTicks = false, DrawMinorTicks = false, }, LabelProvider = new ThousandsLabelProvider() }; var yLeftAxis = new SCINumericAxis { GrowBy = new SCIDoubleRange(0, 3d), AxisAlignment = SCIAxisAlignment.Left, AutoRange = SCIAutoRange.Always, AxisId = "SecondaryAxisId", Style = { DrawMajorTicks = false, DrawMinorTicks = false, }, LabelProvider = new BillionsLabelProvider() }; var dataManager = DataManager.Instance; var priceBars = dataManager.GetPriceDataIndu(); var mountainDataSeries = new XyDataSeries <double, double> { SeriesName = "Mountain Series" }; var lineDataSeries = new XyDataSeries <double, double> { SeriesName = "Line Series" }; var columnDataSeries = new XyDataSeries <double, long> { SeriesName = "Column Series" }; var candlestickDataSeries = new OhlcDataSeries <double, double> { SeriesName = "Candlestick Series" }; var xValues = Enumerable.Range(0, priceBars.Count).Select(x => (double)x).ToArray(); mountainDataSeries.Append(xValues, priceBars.LowData.Select(x => x - 1000d)); lineDataSeries.Append(xValues, dataManager.ComputeMovingAverage(priceBars.CloseData, 50)); columnDataSeries.Append(xValues, priceBars.VolumeData); candlestickDataSeries.Append(xValues, priceBars.OpenData, priceBars.HighData, priceBars.LowData, priceBars.CloseData); var mountainRenderableSeries = new SCIFastMountainRenderableSeries { DataSeries = mountainDataSeries, YAxisId = "PrimaryAxisId" }; var lineRenderableSeries = new SCIFastLineRenderableSeries { DataSeries = lineDataSeries, YAxisId = "PrimaryAxisId" }; var columnRenderableSeries = new SCIFastColumnRenderableSeries { DataSeries = columnDataSeries, YAxisId = "SecondaryAxisId" }; var candlestickRenderableSeries = new SCIFastCandlestickRenderableSeries { DataSeries = candlestickDataSeries, YAxisId = "PrimaryAxisId" }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yRightAxis); Surface.YAxes.Add(yLeftAxis); Surface.RenderableSeries.Add(mountainRenderableSeries); Surface.RenderableSeries.Add(lineRenderableSeries); Surface.RenderableSeries.Add(columnRenderableSeries); Surface.RenderableSeries.Add(candlestickRenderableSeries); Surface.ChartModifiers = new SCIChartModifierCollection { new SCILegendModifier { ShowCheckBoxes = false }, new SCICursorModifier(), new SCIZoomExtentsModifier() }; } SCIThemeManager.ApplyTheme(Surface, customThemeKey); }