private void CreateChart() { if (_choosenData.Equals("Education")) { var dataAmount = from x in people group x by x.Education into g select new ChartData() { ChoosenData = g.Key, Amount = (from x in g select x).Count() }; chartBindingSource.DataSource = dataAmount.ToList(); } else { var dataAmount = from x in people group x by x.HasJob into g select new ChartData() { ChoosenData = g.Key.ToString(), Amount = (from x in g select x).Count() }; chartBindingSource.DataSource = dataAmount.ToList(); } ChartBasis.DataBind(); }
/// <summary> /// Populate a dataseries with data from a NumericTimeDataSeries /// </summary> /// <param name="timeDataSeries">NumericTimeDataSeries containing data to add to chart data series</param> /// <param name="chartDataSeries">Dataseries to add data to</param> /// <param name="chartType">Chart basis (time or distance)</param> /// <returns>Populated dataseries</returns> private static ChartDataSeries PopulateDataSeries(INumericTimeDataSeries timeDataSeries, ChartDataSeries chartDataSeries, ChartBasis chartType, IActivity activity) { switch (chartType) { case ChartBasis.Gear_Distance: ActivityInfo info = ActivityInfoCache.Instance.GetInfo(activity); IDistanceDataTrack track = GearUtils.GetDistanceTrack(activity); float test = 0; foreach (ITimeValueEntry <float> entry in timeDataSeries) { DateTime time = track.EntryDateTime(entry); float distance = track.GetInterpolatedValue(time).Value; distance = (float)Length.Convert(distance, Length.Units.Meter, activity.Category.DistanceUnits); PointF point = new PointF(distance, entry.Value); if (!chartDataSeries.Points.ContainsKey(point.X)) { chartDataSeries.Points.Add(point.X, point); } else if (test != point.X) { test = point.X; } } break; case ChartBasis.Gear_Time: foreach (ITimeValueEntry <float> entry in timeDataSeries) { PointF point = new PointF(entry.ElapsedSeconds, entry.Value); chartDataSeries.Points.Add(point.X, point); } break; default: break; } return(chartDataSeries); }