private void SetChartData() { var chart = FindViewById <PieChart>(Resource.Id.chart); chart.RotationAngle = 0; chart.RotationEnabled = true; chart.HighlightPerTapEnabled = false; chart.SetUsePercentValues(true); chart.Description.Enabled = false; chart.SetExtraOffsets(5, 10, 5, 5); chart.DrawHoleEnabled = true; chart.SetHoleColor(Color.Transparent); chart.HoleRadius = 7f; chart.AnimateY(1400, Easing.EasingOption.EaseInOutQuad); var entries = new List <PieEntry>(); var values = ViewModel.StatisticItems.Select(x => x.Value).ToList(); var labels = ViewModel.StatisticItems.Select(x => x.Label).ToList(); for (int i = 0; i < values.Count; i++) { entries.Add(new PieEntry((float)values[i], labels[i])); } var dataSet = new PieDataSet(entries, "") { SliceSpace = 1f }; dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading1, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading2, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading3, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading4, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading5, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading6, Theme)); dataSet.AddColor(Resources.GetColor(Resource.Color.color_spreading7, Theme)); var data = new PieData(dataSet); data.SetValueFormatter(new PercentFormatter()); data.SetValueTextSize(11f); data.SetValueTextColor(Color.White); chart.SetDrawEntryLabels(false); chart.Data = data; var legend = chart.Legend; legend.TextSize = 12f; legend.Orientation = Legend.LegendOrientation.Vertical; legend.SetDrawInside(false); legend.VerticalAlignment = Legend.LegendVerticalAlignment.Top; legend.HorizontalAlignment = Legend.LegendHorizontalAlignment.Left; legend.XEntrySpace = 7f; legend.YEntrySpace = 0; legend.YOffset = 0f; chart.HighlightValues(null); chart.Invalidate(); }
private void MyPieChart() { sumOfLowOccupancy = (from table in mListStatsColumns where table.LOW_OCCUPANCY.Contains("YES", StringComparison.OrdinalIgnoreCase) select table).Count(); sumOfHighOccupancy = (from table in mListStatsColumns where table.LOW_OCCUPANCY.Contains("NO", StringComparison.OrdinalIgnoreCase) select table).Count(); resoultHighOccupancy = (sumOfHighOccupancy / sumOfLowOccupancy) * 100; resoultLowOccupncy = (sumOfLowOccupancy / sumOfHighOccupancy) * 100; mListOfEntry = new List <PieEntry>(); mListOfEntry.Add(new PieEntry(resoultHighOccupancy, "High occupancy")); mListOfEntry.Add(new PieEntry(resoultLowOccupncy, "Low occupancy")); dataSet = new PieDataSet(mListOfEntry, ""); dataSet.SliceSpace = 3; dataSet.SelectionShift = 2; dataSet.SetColor(Color.DarkGreen, 200); dataSet.AddColor(Color.DarkRed); PieData data = new PieData(dataSet); data.SetValueFormatter(new PercentFormatter()); data.SetValueTextSize(11f); data.SetValueTextColor(Color.Black); mPieChart.Data = data; mPieChart.HighlightValues(null); mPieChart.SetUsePercentValues(true); mPieChart.Description.Enabled = false; mPieChart.SetExtraOffsets(5, 10, 5, 5); mPieChart.DrawHoleEnabled = true; mPieChart.SetHoleColor(Color.White); mPieChart.HoleRadius = 7; mPieChart.SetTransparentCircleAlpha(10); mPieChart.RotationAngle = 0; mPieChart.RotationEnabled = true; mPieChart.HighlightPerTapEnabled = true; mPieChart.AnimateY(2000, Easing.EasingOption.EaseInOutQuad); Legend legend = mPieChart.Legend; legend.Position = Legend.LegendPosition.RightOfChart; legend.XEntrySpace = 7; legend.YEntrySpace = 5; mPieChart.Invalidate(); }