public static ChartTypeModel NewVerticallyStackedMountains(PenStyle.Builder penBuilder, bool isOneHundredPercent) { var collection = new VerticallyStackedMountainsCollection { IsOneHundredPercent = isOneHundredPercent }; for (var i = 0; i < 5; i++) { var dataSeries = new XyDataSeries <double, double> { SeriesName = "Series " + (i + 1) }; dataSeries.Append(DashboardDataHelper.XValues, DashboardDataHelper.YValues[i]); var rSeries = new StackedMountainRenderableSeries { DataSeries = dataSeries, StrokeStyle = penBuilder.WithColor(new Color(SeriesColors[i * 2])).WithThickness(1f, ComplexUnitType.Dip).Build(), AreaStyle = new LinearGradientBrushStyle(0, 0, 0, 1, new Color(SeriesColors[i * 2 + 1]), new Color(SeriesColors[i * 2]), TileMode.Clamp) }; collection.Add(rSeries); } var name = isOneHundredPercent ? "100% " : ""; name += "Stacked mountains"; return(new ChartTypeModel(collection, name)); }
protected override void InitExample() { for (int i = 0; i < DashboardDataHelper.Colors.Length; i++) { int color = Resources.GetColor(DashboardDataHelper.Colors[i]); SeriesColors[i] = color; } var builder = new PenStyle.Builder(Activity); _chartTypesSource.Add(ChartTypeModelFactory.NewHorizontallyStackedColumns(builder)); _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedColumns(builder, false)); _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedColumns(builder, true)); _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedMountains(builder, false)); _chartTypesSource.Add(ChartTypeModelFactory.NewVerticallyStackedMountains(builder, true)); //this line fixes swiping lag of the viewPager by caching the pages ViewPager.OffscreenPageLimit = 5; ViewPager.Adapter = new ViewPagerAdapter(Activity.BaseContext, _chartTypesSource); TabLayout.SetupWithViewPager(ViewPager); }
public static ChartTypeModel NewHorizontallyStackedColumns(PenStyle.Builder penBuilder) { var seriesCollection = new HorizontallyStackedColumnsCollection(); for (var i = 0; i < 5; i++) { var dataSeries = new XyDataSeries <double, double> { SeriesName = "Series " + (i + 1) }; dataSeries.Append(DashboardDataHelper.XValues, DashboardDataHelper.YValues[i]); var rSeries = new StackedColumnRenderableSeries { DataSeries = dataSeries, StrokeStyle = penBuilder.WithColor(new Color(SeriesColors[i * 2])).WithThickness(1f, ComplexUnitType.Dip).Build(), FillBrushStyle = new LinearGradientBrushStyle(0, 0, 0, 1, new Color(SeriesColors[i * 2 + 1]), new Color(SeriesColors[i * 2]), TileMode.Clamp) }; seriesCollection.Add(rSeries); } const string name = "Stacked columns side-by-side"; return(new ChartTypeModel(seriesCollection, name)); }
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() }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes = new AxisCollection { leftAxis, 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 PenStyle.Builder(Activity).WithColor(initialColor).WithThickness(2, ComplexUnitType.Dip).Build() }; // 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); } var selectedStrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(4f).Build(); var selectedPointMarker = new EllipsePointMarker { Width = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics), Height = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics), FillStyle = new SolidBrushStyle(Color.Argb(0xFF, 0xFF, 0x00, 0xDC)), StrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(1f).Build() }; Surface.ChartModifiers.Add(new SeriesSelectionModifier { SelectedSeriesStyle = new SelectedSeriesStyle(selectedStrokeStyle, selectedPointMarker) }); } }