protected override void InitExample() { var data = DataManager.Instance.GetPriceDataIndu(); var dataSeries = new OhlcDataSeries <DateTime, double>(); dataSeries.Append(data.TimeData, data.OpenData, data.HighData, data.LowData, data.CloseData); var xAxis = new CategoryDateAxis(Activity); var yAxis = new NumericAxis(Activity) { GrowBy = new DoubleRange(0, 0.1) }; var rs = new FastCandlestickRenderableSeries { DataSeries = dataSeries, StrokeUpStyle = new PenStyle.Builder(Activity).WithColor(Color.Green).Build(), StrokeDownStyle = new PenStyle.Builder(Activity).WithColor(Color.Red).Build(), FillUpBrushStyle = new SolidBrushStyle(Color.Green), FillDownBrushStyle = new SolidBrushStyle(Color.Red) }; Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(rs); Surface.ChartModifiers = new ChartModifierCollection() { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; }
private void CreateOverviewChart(out BoxAnnotation leftAreaAnnotation, out BoxAnnotation rightAreaAnnotation) { // Create an XAxis and YAxis for our chart var xAxis1 = new CategoryDateAxis(Activity) { AutoRange = AutoRange.Always }; var yAxis1 = new NumericAxis(Activity) { GrowBy = new DoubleRange(0.1, 0.1), AutoRange = AutoRange.Always }; // Create the mountain chart for the overview , using the same price data but zoomed out var mountainSeries = new FastMountainRenderableSeries { DataSeries = _ohlcDataSeries }; // Create some annotations to visualize the selected area on the main price chart leftAreaAnnotation = new BoxAnnotation(Activity) { CoordinateMode = AnnotationCoordinateMode.RelativeY, Y1Value = 0, Y2Value = 1, Background = Activity.GetDrawableCompat(Resource.Drawable.example_gray_box_annotation_background) }; rightAreaAnnotation = new BoxAnnotation(Activity) { CoordinateMode = AnnotationCoordinateMode.RelativeY, Y1Value = 0, Y2Value = 1, Background = Activity.GetDrawableCompat(Resource.Drawable.example_gray_box_annotation_background) }; // 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 InitExample() { var priceSeries = DataManager.Instance.GetPriceDataIndu(); var dataSeries = new OhlcDataSeries <DateTime, double>(); dataSeries.Append(priceSeries.TimeData, priceSeries.OpenData, priceSeries.HighData, priceSeries.LowData, priceSeries.CloseData); var size = priceSeries.Count; var xAxis = new CategoryDateAxis(Activity) { VisibleRange = new DoubleRange(size - 30, size), GrowBy = new DoubleRange(0, 0.1) }; var yAxis = new NumericAxis(Activity) { GrowBy = new DoubleRange(0, 0.1), AutoRange = AutoRange.Always }; var rSeries = new FastCandlestickRenderableSeries { DataSeries = dataSeries, StrokeUpStyle = new SolidPenStyle(0xFF00AA00, 1.ToDip(Activity)), StrokeDownStyle = new SolidPenStyle(0xFFFF0000, 1.ToDip(Activity)), FillUpBrushStyle = new SolidBrushStyle(0x8800AA00), FillDownBrushStyle = new SolidBrushStyle(0x88FF0000) }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(rSeries); Surface.ChartModifiers = new ChartModifierCollection { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; new WaveAnimatorBuilder(rSeries) { Interpolator = new DecelerateInterpolator(), Duration = 3000, StartDelay = 350 }.Start(); } }
private void InitChart(SciChartSurface surface, BasePaneModel model, bool isMainPain) { var xAxis = new CategoryDateAxis(Activity) { Visibility = (int)(isMainPain ? ViewStates.Visible : ViewStates.Gone), GrowBy = new DoubleRange(0, 0.05) }; using (surface.SuspendUpdates()) { surface.XAxes.Add(xAxis); surface.YAxes.Add(model.YAxis); surface.RenderableSeries = model.RenderableSeries; surface.Annotations = model.Annotations; surface.ChartModifiers = new ChartModifierCollection { new ModifierGroup { MotionEventGroup = "ModifiersSharedEventsGroup", ChildModifiers = new ChartModifierCollection { new XAxisDragModifier { DragMode = AxisDragModifierBase.AxisDragMode.Pan, ClipModeX = ClipMode.StretchAtExtents }.WithReceiveHandledEvents(true), new PinchZoomModifier { Direction = Direction2D.XDirection }.WithReceiveHandledEvents(true), new ZoomPanModifier().WithReceiveHandledEvents(true), new ZoomExtentsModifier().WithReceiveHandledEvents(true), new LegendModifier(Activity).WithShowCheckBoxes(false), } }.WithReceiveHandledEvents(true) }; } _verticalGroup.AddSurfaceToGroup(surface); }
private void CreateMainPriceChart() { // Create an XAxis and YAxis for our chart var xAxis = new CategoryDateAxis(Activity) { BarTimeFrame = TimeSpan.FromMinutes(5).TotalSeconds, DrawMajorGridLines = false, GrowBy = new DoubleRange(0, 0.1) }; var yAxis = new NumericAxis(Activity) { AutoRange = AutoRange.Always }; // Create RenderableSeries to render the data var ohlcSeries = new FastOhlcRenderableSeries { DataSeries = _ohlcDataSeries, StrokeUpStyle = new SolidPenStyle(StrokeUpColor, StrokeThickness.ToDip(Activity)), StrokeDownStyle = new SolidPenStyle(StrokeDownColor, StrokeThickness.ToDip(Activity)), }; var movingAverage50Series = new FastLineRenderableSeries { DataSeries = _xyDataSeries, StrokeStyle = new SolidPenStyle(0xFFFF6600, 1.0f) }; // Create axis markers annotations to show the last values on real-time chart _smaAxisMarker = new AxisMarkerAnnotation(Activity) { Y1Value = 0d }; _smaAxisMarker.SetBackgroundColor(SmaSeriesColor.ToColor()); _ohlcAxisMarker = new AxisMarkerAnnotation(Activity) { Y1Value = 0d }; _ohlcAxisMarker.SetBackgroundColor(StrokeUpColor.ToColor()); // Populate the chart with Axis, RenderableSeries. The chart automatically updates when any property changes using (MainSurface.SuspendUpdates()) { MainSurface.XAxes.Add(xAxis); MainSurface.YAxes.Add(yAxis); MainSurface.RenderableSeries.Add(ohlcSeries); MainSurface.RenderableSeries.Add(movingAverage50Series); MainSurface.Annotations.Add(_ohlcAxisMarker); MainSurface.Annotations.Add(_smaAxisMarker); // Populate some pinch and touch interactions. Pinch to zoom, drag to pan and double-tap to zoom extents MainSurface.ChartModifiers = new ChartModifierCollection { new XAxisDragModifier(), new ZoomPanModifier { Direction = Direction2D.XDirection }.WithReceiveHandledEvents(true), new ZoomExtentsModifier(), new LegendModifier(Activity).WithOrientation(Orientation.Horizontal).WithPosition(GravityFlags.CenterHorizontal | GravityFlags.Bottom, 20).WithReceiveHandledEvents(true), }; } }