protected override void InitExample() { var xAxis = new NumericAxis(Activity) { AutoRange = AutoRange.Always }; var leftAxis = new NumericAxis(Activity) { AxisAlignment = AxisAlignment.Left, AxisId = AxisAlignment.Left.Name() }; var rightAxis = new NumericAxis(Activity) { AxisAlignment = AxisAlignment.Right, AxisId = AxisAlignment.Right.Name() }; var selectedStrokeStyle = new SolidPenStyle(ColorUtil.White, 4f.ToDip(Activity)); var selectedPointMarker = new EllipsePointMarker { Width = 10.ToDip(Activity), Height = 10.ToDip(Activity), FillStyle = new SolidBrushStyle(0xFFFF00DC), StrokeStyle = new SolidPenStyle(ColorUtil.White, 1f.ToDip(Activity)) }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(leftAxis); Surface.YAxes.Add(rightAxis); var initialColor = Color.Blue; for (var i = 0; i < SeriesCount; i++) { var alignment = i % 2 == 0 ? AxisAlignment.Left : AxisAlignment.Right; var dataSeries = GenerateDataSeries(alignment, i); var rs = new FastLineRenderableSeries { DataSeries = dataSeries, YAxisId = alignment.Name(), StrokeStyle = new SolidPenStyle(initialColor, 2f.ToDip(Activity)) }; // Colors are incremented for visual purposes only var newR = initialColor.R == 255 ? 255 : initialColor.R + 5; var newB = initialColor.B == 0 ? 0 : initialColor.B - 2; initialColor = Color.Argb(255, (byte)newR, initialColor.G, (byte)newB); Surface.RenderableSeries.Add(rs); } Surface.ChartModifiers.Add(new SeriesSelectionModifier { SelectedSeriesStyle = new SelectedSeriesStyle(selectedStrokeStyle, selectedPointMarker) }); } }
private void SetupAxes() { // Brushes and styles for the XAxis, vertical gridlines, vertical tick marks, vertical axis bands and xaxis labels var xAxisGridBandBrush = new SolidBrushStyle(color: 0x55ff6655); var xAxisMajorGridLineBrush = new SolidPenStyle(color: Color.Green, thickness: 1); var xAxisMinorGridLineBrush = new SolidPenStyle(color: Color.Yellow, thickness: 0.5f, strokeDashArray: new float[] { 10, 3, 10, 3 }, antiAliasing: true); var xAxisMajorTickBrush = new SolidPenStyle(color: Color.Green, thickness: 1); var xAxisMinorTickBrush = new SolidPenStyle(color: Color.Yellow, thickness: 0.5f, strokeDashArray: new float[] { 10, 3, 10, 3 }, antiAliasing: true); var xAxisLabelColor = Color.Purple; var xAxisFontName = "Helvetica"; var xAxisFontSize = 14.0f; var xAxisDrawLabels = true; var xAxisDrawMajorTicks = true; var xAxisDrawMinorTicks = true; var xAxisDrawMajorGridlines = true; var xAxisDrawMinorGridlines = true; // Create the XAxis var xAxis = new NumericAxis(Activity); xAxis.GrowBy = new DoubleRange(min: 0.1, max: 0.1); xAxis.VisibleRange = new DoubleRange(min: 150, max: 180); // Apply styles to the XAxis (see above) xAxis.AxisBandsStyle = xAxisGridBandBrush; xAxis.MajorGridLineStyle = xAxisMajorGridLineBrush; xAxis.MinorGridLineStyle = xAxisMinorGridLineBrush; xAxis.TickLabelStyle = new FontStyle(Typeface.Create(xAxisFontName, TypefaceStyle.Normal), xAxisFontSize, Color.Black); xAxis.DrawMajorTicks = xAxisDrawMajorTicks; xAxis.DrawMinorTicks = xAxisDrawMinorTicks; xAxis.DrawMajorGridLines = xAxisDrawMajorGridlines; xAxis.DrawMinorGridLines = xAxisDrawMinorGridlines; xAxis.DrawLabels = xAxisDrawLabels; xAxis.MajorTickLineLength = 5; xAxis.MajorTickLineStyle = xAxisMajorTickBrush; xAxis.MinorTickLineLength = 2; xAxis.MinorTickLineStyle = xAxisMinorTickBrush; // Brushes and styles for the Right YAxis, horizontal gridlines, horizontal tick marks, horizontal axis bands and right yaxis labels var yRightAxisMajorTickBrush = new SolidPenStyle(color: Color.Purple, thickness: 1); var yRightAxisMinorTickBrush = new SolidPenStyle(color: Color.Red, thickness: 0.5f); var yRightAxisMajorBandBrush = new SolidBrushStyle(color: 0x55ff6655); var yRightAxisMajorGridLineBrush = new SolidPenStyle(color: Color.Green, thickness: 1); var yRightAxisMinorGridLineBrush = new SolidPenStyle(color: Color.Yellow, thickness: 0.5f, strokeDashArray: new float[] { 10, 3, 10, 3 }, antiAliasing: true); var yRightAxisLabelFormatter = new ThousandsLabelProvider(); // see LabelProvider API documentation for more info var yRightAxisLabelColor = Color.Green; var yRightAxisFontSize = 12.0f; var yRightAxisDrawLabels = true; var yRightAxisDrawMajorTicks = true; var yRightAxisDrawMinorTicks = true; var yRightAxisDrawMajorGridlines = true; var yRightAxisDrawMinorGridlines = true; // Create the Right YAxis var yRightAxis = new NumericAxis(Activity); yRightAxis.GrowBy = new DoubleRange(min: 0.1, max: 0.1); yRightAxis.AxisAlignment = AxisAlignment.Right; yRightAxis.AutoRange = AutoRange.Always; yRightAxis.AxisId = "PrimaryAxisId"; // Apply styles to the Right YAxis (see above) yRightAxis.AxisBandsStyle = yRightAxisMajorBandBrush; yRightAxis.MajorGridLineStyle = yRightAxisMajorGridLineBrush; yRightAxis.MinorGridLineStyle = yRightAxisMinorGridLineBrush; yRightAxis.LabelProvider = yRightAxisLabelFormatter; yRightAxis.TickLabelStyle = new FontStyle(Typeface.Create("Arial", TypefaceStyle.Normal), yRightAxisFontSize, yRightAxisLabelColor); yRightAxis.MajorTickLineLength = 3; yRightAxis.MajorTickLineStyle = yRightAxisMajorTickBrush; yRightAxis.MinorTickLineLength = 2; yRightAxis.MinorTickLineStyle = yRightAxisMinorTickBrush; yRightAxis.DrawMajorTicks = yRightAxisDrawMajorTicks; yRightAxis.DrawMinorTicks = yRightAxisDrawMinorTicks; yRightAxis.DrawMajorGridLines = yRightAxisDrawMajorGridlines; yRightAxis.DrawMinorGridLines = yRightAxisDrawMinorGridlines; yRightAxis.DrawLabels = yRightAxisDrawLabels; // Brushes and styles for the Left YAxis, horizontal gridlines, horizontal tick marks, horizontal axis bands and left yaxis labels var yLeftAxisMajorTickBrush = new SolidPenStyle(color: Color.Black, thickness: 1); var yLeftAxisMinorTickBrush = new SolidPenStyle(color: Color.Black, thickness: 0.5f); var yLeftAxisLabelFormatter = new BillionsLabelProvider(); // See LabelProvider API documentation var yLeftAxisLabelColor = Color.DarkGray; var yLeftAxisFontSize = 12.0f; var yLeftAxisDrawMajorBands = false; var yLeftAxisDrawLabels = true; var yLeftAxisDrawMajorTicks = true; var yLeftAxisDrawMinorTicks = true; var yLeftAxisDrawMajorGridlines = false; var yLeftAxisDrawMinorGridlines = false; // Create the left YAxis var yLeftAxis = new NumericAxis(Activity); yLeftAxis.GrowBy = new DoubleRange(min: 0, max: 3); yLeftAxis.AxisAlignment = AxisAlignment.Left; yLeftAxis.AutoRange = AutoRange.Always; yLeftAxis.AxisId = "SecondaryAxisId"; // Apply styles to the left YAxis (see above) yLeftAxis.DrawMajorBands = yLeftAxisDrawMajorBands; yLeftAxis.DrawMajorGridLines = yLeftAxisDrawMajorGridlines; yLeftAxis.DrawMinorGridLines = yLeftAxisDrawMinorGridlines; yLeftAxis.DrawMajorTicks = yLeftAxisDrawMajorTicks; yLeftAxis.DrawMinorTicks = yLeftAxisDrawMinorTicks; yLeftAxis.DrawLabels = yLeftAxisDrawLabels; yLeftAxis.LabelProvider = yLeftAxisLabelFormatter; yRightAxis.TickLabelStyle = new FontStyle(Typeface.Create("Arial", TypefaceStyle.Normal), yLeftAxisFontSize, yLeftAxisLabelColor); yLeftAxis.MajorTickLineLength = 3; yLeftAxis.MajorTickLineStyle = yLeftAxisMajorTickBrush; yLeftAxis.MinorTickLineLength = 2; yLeftAxis.MinorTickLineStyle = yLeftAxisMinorTickBrush; // Add the axes to the chart Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yRightAxis); Surface.YAxes.Add(yLeftAxis); }
protected override void InitExample() { var xAxis = new NumericAxis(Activity); var yAxis = new NumericAxis(Activity); var fourierSeries = DataManager.Instance.GetFourierSeries(1.0, 0.1, 5.0, 5.15); var dataSeries0 = new HlDataSeries <double, double>(); var dataSeries1 = new HlDataSeries <double, double>(); FillDataSeries(dataSeries0, fourierSeries, 1.0); FillDataSeries(dataSeries1, fourierSeries, 1.3); const uint color = 0xFFC6E6FF; var strokeStyle = new SolidPenStyle(0xFFC6E6FF, 1f.ToDip(Activity)); var errorBars0 = new FastErrorBarsRenderableSeries() { DataSeries = dataSeries0, StrokeStyle = strokeStyle, ErrorDirection = ErrorDirection.Vertical, ErrorType = ErrorType.Absolute }; var lineSeries = new FastLineRenderableSeries { DataSeries = dataSeries0, StrokeStyle = strokeStyle, PointMarker = new EllipsePointMarker() { FillStyle = new SolidBrushStyle(color), Width = 5.ToDip(Activity), Height = 5.ToDip(Activity) } }; var errorBars1 = new FastErrorBarsRenderableSeries() { DataSeries = dataSeries1, StrokeStyle = strokeStyle, ErrorDirection = ErrorDirection.Vertical, ErrorType = ErrorType.Absolute }; var scatterSeries = new XyScatterRenderableSeries() { DataSeries = dataSeries1, PointMarker = new EllipsePointMarker() { FillStyle = new SolidBrushStyle(ColorUtil.Transparent), StrokeStyle = strokeStyle, Width = 7.ToDip(Activity), Height = 7.ToDip(Activity) } }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries = new RenderableSeriesCollection { errorBars0, lineSeries, errorBars1, scatterSeries }; Surface.ChartModifiers = new ChartModifierCollection { new ZoomPanModifier(), new PinchZoomModifier(), new ZoomExtentsModifier(), }; new ScaleAnimatorBuilder(errorBars0) { Interpolator = new OvershootInterpolator(), Duration = 1000, StartDelay = 600 }.Start(); new ScaleAnimatorBuilder(lineSeries) { Interpolator = new OvershootInterpolator(), Duration = 1000, StartDelay = 600 }.Start(); new ScaleAnimatorBuilder(errorBars1) { Interpolator = new OvershootInterpolator(), Duration = 1000, StartDelay = 600 }.Start(); new ScaleAnimatorBuilder(scatterSeries) { Interpolator = new OvershootInterpolator(), Duration = 1000, StartDelay = 600 }.Start(); } }