private void InitializeChart() { if (supportLineChart != null && supportLineChart.ChartData != null && lineChart != null) { SupportChart.OnInitializeChart(supportLineChart, lineChart); var data = supportLineChart.ChartData; var dataSetItems = new List <LineDataSet>(); foreach (var itemChild in data.IF_GetDataSet()) { var entryOriginal = itemChild.IF_GetEntry().Select(item => new MikePhil.Charting.Data.Entry(item.GetXPosition(), item.GetYPosition())); LineDataSet lineDataSet = new LineDataSet(entryOriginal.ToArray(), itemChild.IF_GetTitle()); lineDataSet.Color = itemChild.IF_GetDataColor().ToAndroid(); lineDataSet.SetMode(SupportChart.GetDrawLineMode(itemChild.IF_GetDrawMode())); lineDataSet.CircleRadius = itemChild.IF_GetCircleRadius(); lineDataSet.CircleHoleRadius = itemChild.IF_GetCircleHoleRadius(); lineDataSet.SetDrawCircles(itemChild.IF_GetDrawCircle()); lineDataSet.SetDrawValues(itemChild.IF_GetDrawValue()); var arrColor = itemChild.IF_GetCircleColors().Select(item => item.ToAndroid()); lineDataSet.SetCircleColor(itemChild.IF_GetCircleColor().ToAndroid()); dataSetItems.Add(lineDataSet); } LineData lineData = new LineData(dataSetItems.ToArray()); lineChart.Data = lineData; } }
private void CreateGlucoseChart() { if (_bloodGlucoseDataList.Count == 0) { _lineChart.Data.ClearValues(); _lineChart.Clear(); _lineChart.Invalidate(); return; } var glucoseEntries = _bloodGlucoseDataList.Select((t, i) => new BarEntry(i, t.Avg)).Cast <Entry>().ToList(); var glucoseDataSet = new LineDataSet(glucoseEntries, "Glucoza") { ValueTextSize = 14f, ValueTextColor = Color.White, LineWidth = 3f, AxisDependency = YAxis.AxisDependency.Left }; glucoseDataSet.SetMode(LineDataSet.Mode.HorizontalBezier); glucoseDataSet.SetColors(Resources.GetColor(Resource.Color.accent, Theme)); glucoseDataSet.SetCircleColor(Resources.GetColor(Resource.Color.accent, Theme)); var barData = new LineData(glucoseDataSet); _lineChart.Data = barData; _lineChart.SetOnChartValueSelectedListener(this); _lineChart.SetDrawBorders(false); _lineChart.SetDrawGridBackground(false); _lineChart.SetNoDataText("Nu exista date"); _lineChart.Description.Enabled = false; _lineChart.AxisLeft.SetDrawGridLines(false); _lineChart.AxisRight.SetDrawGridLines(false); _lineChart.XAxis.SetDrawGridLines(false); _lineChart.XAxis.Enabled = false; _lineChart.AxisLeft.Enabled = false; _lineChart.AxisRight.Enabled = false; _lineChart.AnimateXY(3000, 3000); // animate horizontal and vertical 3000 milliseconds _lineChart.SetPinchZoom(false); SetLegend(); _lineChart.Invalidate(); }
private void CreateBloodPresureChart() { if (_bloodPressureDataList.Count == 0) { _lineChart.Data.ClearValues(); _lineChart.Clear(); _lineChart.Invalidate(); return; } var systolicEntries = new List <Entry>(); var diastolicEntries = new List <Entry>(); for (var i = 0; i < _bloodPressureDataList.Count; i++) { systolicEntries.Add(new BarEntry(i, _bloodPressureDataList[i].Systolic)); diastolicEntries.Add(new BarEntry(i, _bloodPressureDataList[i].Diastolic)); } var systolicDataSet = new LineDataSet(systolicEntries, "Sistola") { ValueTextSize = 14f, ValueTextColor = Color.White, LineWidth = 3f, AxisDependency = YAxis.AxisDependency.Left }; systolicDataSet.SetMode(LineDataSet.Mode.HorizontalBezier); systolicDataSet.SetColors(Resources.GetColor(Resource.Color.accent, Theme)); systolicDataSet.SetCircleColor(Resources.GetColor(Resource.Color.accent, Theme)); var diastolicDataSet = new LineDataSet(diastolicEntries, "Diastola") { ValueTextSize = 14f, ValueTextColor = Color.White, LineWidth = 3f, AxisDependency = YAxis.AxisDependency.Left }; diastolicDataSet.SetMode(LineDataSet.Mode.HorizontalBezier); diastolicDataSet.SetColors(Color.White); diastolicDataSet.SetCircleColor(Color.White); var barData = new LineData(systolicDataSet, diastolicDataSet); _lineChart.Data = barData; _lineChart.SetOnChartValueSelectedListener(this); _lineChart.SetDrawBorders(false); _lineChart.SetDrawGridBackground(false); _lineChart.SetNoDataText("Nu exista date"); _lineChart.Description.Enabled = false; _lineChart.AxisLeft.SetDrawGridLines(false); _lineChart.AxisRight.SetDrawGridLines(false); _lineChart.XAxis.SetDrawGridLines(false); _lineChart.XAxis.Enabled = false; _lineChart.AxisLeft.Enabled = false; _lineChart.AxisRight.Enabled = false; _lineChart.AnimateXY(1000, 1000); // animate horizontal and vertical 3000 milliseconds _lineChart.SetPinchZoom(false); SetLegend(); _lineChart.Invalidate(); }
private View CreateAiringScoreProgressionView( List <MediaTrend> trends) { var detailView = LayoutInflater.Inflate(Resource.Layout.View_AniListObjectDetail, null); var detailContainer = detailView.FindViewById <LinearLayout>(Resource.Id.AniListObjectDetail_InnerContainer); detailView.FindViewById <TextView>(Resource.Id.AniListObjectDetail_Name).Text = "Airing Score Progression"; var chartHeight = Resources.GetDimensionPixelSize(Resource.Dimension.Details_ChartHeight); var textColor = GetThemedColor(Resource.Attribute.Background_Text); var legendMargin = Resources.GetDimensionPixelSize(Resource.Dimension.Details_MarginSmall); detailContainer.SetPadding(legendMargin, 0, legendMargin, 0); var typedColorArray = Resources.ObtainTypedArray(Resource.Array.Chart_Colors); var colorList = new List <int>(); for (var i = 0; i < typedColorArray.Length(); i++) { colorList.Add(typedColorArray.GetColor(i, 0)); } var scoresChart = new LineChart(this) { LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, chartHeight), }; var data = new LineData(); var scorePoints = trends.Select(x => new Entry(x.Episode.Value, x.AverageScore ?? 0)).ToList(); var scoreDataSet = new LineDataSet(scorePoints, "Score") { Color = colorList[0], ValueFormatter = new ChartUtils.IntegerValueFormatter(), }; scoreDataSet.ValueTextSize = 12; scoreDataSet.SetDrawCircleHole(false); scoreDataSet.SetCircleColor(colorList[0]); scoreDataSet.SetMode(LineDataSet.Mode.Linear); scoreDataSet.ValueTextColor = textColor; scoreDataSet.SetDrawValues(true); data.AddDataSet(scoreDataSet); scoresChart.Data = data; scoresChart.FitScreen(); scoresChart.SetTouchEnabled(false); scoresChart.Description.Enabled = false; scoresChart.XAxis.Position = XAxis.XAxisPosition.Bottom; scoresChart.XAxis.ValueFormatter = new ChartUtils.AxisValueCeilingFormatter(1); scoresChart.XAxis.Granularity = 1; scoresChart.XAxis.AxisMaximum = trends.Max(x => x.Episode.Value); scoresChart.XAxis.AxisMinimum = trends.Min(x => x.Episode.Value); scoresChart.XAxis.SetLabelCount(trends.Count, true); scoresChart.AxisLeft.AxisMinimum = 0; scoresChart.AxisLeft.AxisMaximum = 100; scoresChart.Legend.Enabled = false; scoresChart.SetDrawGridBackground(false); scoresChart.XAxis.SetDrawGridLines(false); scoresChart.AxisLeft.Enabled = false; scoresChart.AxisRight.Enabled = false; scoresChart.ExtraLeftOffset = scoresChart.ExtraRightOffset = 15; scoresChart.XAxis.TextColor = scoresChart.AxisLeft.TextColor = scoresChart.Legend.TextColor = textColor; detailContainer.AddView(scoresChart); return(detailView); }
private View CreateRecentActivityView( List <MediaTrend> trends) { var detailView = LayoutInflater.Inflate(Resource.Layout.View_AniListObjectDetail, null); var detailContainer = detailView.FindViewById <LinearLayout>(Resource.Id.AniListObjectDetail_InnerContainer); detailView.FindViewById <TextView>(Resource.Id.AniListObjectDetail_Name).Text = "Recent Activity"; var chartHeight = Resources.GetDimensionPixelSize(Resource.Dimension.Details_ChartHeight); var textColor = GetThemedColor(Resource.Attribute.Background_Text); var legendMargin = Resources.GetDimensionPixelSize(Resource.Dimension.Details_MarginSmall); detailContainer.SetPadding(legendMargin, 0, legendMargin, 0); var typedColorArray = Resources.ObtainTypedArray(Resource.Array.Chart_Colors); var colorList = new List <int>(); for (var i = 0; i < typedColorArray.Length(); i++) { colorList.Add(typedColorArray.GetColor(i, 0)); } var activityChart = new LineChart(this) { LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, chartHeight), }; var data = new LineData(); var activityPoints = trends.Select(x => new Entry(x.Date, x.Trending)).ToList(); var activityDataSet = new LineDataSet(activityPoints, "Trending") { Color = colorList[0], ValueFormatter = new ChartUtils.NumberValueFormatter(), }; var activityRange = trends.Max(x => x.Trending) - trends.Min(x => x.Trending); activityDataSet.ValueTextSize = 12; activityDataSet.SetDrawCircleHole(false); activityDataSet.SetCircleColor(colorList[0]); activityDataSet.SetMode(LineDataSet.Mode.Linear); activityDataSet.ValueTextColor = textColor; activityDataSet.SetDrawValues(true); data.AddDataSet(activityDataSet); activityChart.Data = data; activityChart.FitScreen(); activityChart.SetTouchEnabled(false); activityChart.Description.Enabled = false; activityChart.XAxis.Position = XAxis.XAxisPosition.Bottom; activityChart.XAxis.ValueFormatter = new ChartUtils.DateValueFormatter("MMM d"); activityChart.XAxis.LabelRotationAngle = 60; activityChart.XAxis.Granularity = 1; activityChart.XAxis.AxisMaximum = trends.Max(x => x.Date); activityChart.XAxis.AxisMinimum = trends.Min(x => x.Date); activityChart.XAxis.SetLabelCount(trends.Count, true); activityChart.AxisLeft.AxisMinimum = Math.Max(trends.Min(x => x.Trending) - activityRange / 2, 0); activityChart.AxisLeft.AxisMaximum = trends.Max(x => x.Trending) + activityRange / 2; activityChart.Legend.Enabled = false; activityChart.SetDrawGridBackground(false); activityChart.XAxis.SetDrawGridLines(false); activityChart.AxisLeft.Enabled = false; activityChart.AxisRight.Enabled = false; activityChart.XAxis.TextColor = activityChart.AxisLeft.TextColor = activityChart.Legend.TextColor = textColor; activityChart.ExtraLeftOffset = activityChart.ExtraRightOffset = 15; detailContainer.AddView(activityChart); return(detailView); }