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); } }
private static BoxAnnotation createAnnotation(string annotationText_, double valueX_, double valueY_,bool isLastOfSeries, Color color_) { var box = new BoxAnnotation(); box.Text = annotationText_; box.Location.Type = Infragistics.UltraChart.Shared.Styles.LocationType.DataValues; box.Location.ValueX = valueX_; box.Location.ValueY = valueY_; box.TextStyle.FontColor = color_; box.TextStyle.FontSizeBestFit = true; box.Border.Thickness = 0; box.TextStyle.Font = new Font("Arial", 5F); if (annotationText_.Length > 2) { box.TextStyle.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.VerticalLeftFacing; } if (isLastOfSeries) box.TextStyle.Font = new Font("Arial", 14F); return box; }
private BoxAnnotation createAnnotation(string annotationText_, double valueX_, double valueY_, Color color_) { var box = new BoxAnnotation { Location = { Type = Infragistics.UltraChart.Shared.Styles.LocationType.DataValues, ValueX = valueX_, ValueY = valueY_ }, Text=annotationText_, }; box.TextStyle.FontColor = color_; box.Border.Thickness = 0; if (annotationText_.Length > 1) { box.TextStyle.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.VerticalLeftFacing; } return box; }
protected override void InitExample() { var xAxis = new NumericAxis(Activity) { VisibleRange = new DoubleRange(150d, 165d) }; var yAxis = new NumericAxis(Activity) { LabelProvider = new ThousandsLabelProvider(), GrowBy = new DoubleRange(0, 0.1), AutoRange = AutoRange.Always }; 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, double>() { SeriesName = "Column Series" }; var scatterDataSeries = new XyDataSeries <double, double>() { SeriesName = "Scatter Series" }; var candlestickDataSeries = new OhlcDataSeries <double, double>() { SeriesName = "Candlestick Series" }; var ohlcDataSeries = new OhlcDataSeries <double, double>() { SeriesName = "OHLC Series" }; var xValues = Enumerable.Range(0, priceBars.Count).Select(x => (double)x).ToArray(); mountainDataSeries.Append(xValues, priceBars.LowData.Select(x => x - 2000d)); lineDataSeries.Append(xValues, priceBars.CloseData.Select(x => x + 1000d)); ohlcDataSeries.Append(xValues, priceBars.OpenData, priceBars.HighData, priceBars.LowData, priceBars.CloseData); candlestickDataSeries.Append(xValues, priceBars.OpenData.Select(x => x - 1000d), priceBars.HighData.Select(x => x - 1000d), priceBars.LowData.Select(x => x - 1000d), priceBars.CloseData.Select(x => x - 1000d)); columnDataSeries.Append(xValues, priceBars.CloseData.Select(x => x - 3000d)); scatterDataSeries.Append(xValues, priceBars.OpenData.Select(x => x - 2500d)); var annotation = new BoxAnnotation(Activity) { X1Value = 152d, Y1Value = 0d, X2Value = 158d, Y2Value = 1d, Background = Activity.GetDrawableCompat(Resource.Drawable.example_box_annotation_background_1), IsEditable = true, CoordinateMode = AnnotationCoordinateMode.RelativeY }; annotation.SetOnAnnotationDragListener(new AnnotationDragListener()); var mountainSeries = new FastMountainRenderableSeries { DataSeries = mountainDataSeries, AreaStyle = new SolidBrushStyle(0x9787CEEB), StrokeStyle = new SolidPenStyle(Color.Magenta), PaletteProvider = new XyCustomPaletteProvider(Color.Red, annotation) }; var lineSeries = new FastLineRenderableSeries { DataSeries = lineDataSeries, StrokeStyle = new SolidPenStyle(Color.Blue), PointMarker = new EllipsePointMarker() { FillStyle = new SolidBrushStyle(Color.Red), StrokeStyle = new SolidPenStyle(Color.Orange, 2f.ToDip(Activity)), Width = (int)10f.ToDip(Activity), Height = (int)10f.ToDip(Activity) }, PaletteProvider = new XyCustomPaletteProvider(Color.Red, annotation) }; var ohlcSeries = new FastOhlcRenderableSeries() { DataSeries = ohlcDataSeries, PaletteProvider = new OhlcCustomPaletteProvider(Color.CornflowerBlue, annotation) }; var candlestickSeries = new FastCandlestickRenderableSeries { DataSeries = candlestickDataSeries, PaletteProvider = new OhlcCustomPaletteProvider(Color.Green, annotation) }; var columnSeries = new FastColumnRenderableSeries { DataSeries = columnDataSeries, StrokeStyle = new SolidPenStyle(Color.Blue), FillBrushStyle = new SolidBrushStyle(Color.Blue), ZeroLineY = 6000, DataPointWidth = 0.8, PaletteProvider = new XyCustomPaletteProvider(Color.Purple, annotation) }; var scatterSeries = new XyScatterRenderableSeries() { DataSeries = scatterDataSeries, PointMarker = new SquarePointMarker() { FillStyle = new SolidBrushStyle(Color.Red), StrokeStyle = new SolidPenStyle(Color.Orange, 2f.ToDip(Activity)), Width = (int)7f.ToDip(Activity), Height = (int)7f.ToDip(Activity) }, PaletteProvider = new XyCustomPaletteProvider(Color.LimeGreen, annotation) }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(mountainSeries); Surface.RenderableSeries.Add(lineSeries); Surface.RenderableSeries.Add(ohlcSeries); Surface.RenderableSeries.Add(candlestickSeries); Surface.RenderableSeries.Add(columnSeries); Surface.RenderableSeries.Add(scatterSeries); Surface.ChartModifiers = new ChartModifierCollection { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; Surface.Annotations.Add(annotation); } }
public OhlcCustomPaletteProvider(Color color, BoxAnnotation annotation) { _color = color.ToArgb(); _annotation = annotation; }