예제 #1
0
        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();
        }
예제 #2
0
        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();
        }