public void Plot(DiscreteDistributionData dataToPlot, DistributionSettings settings) { ResetPlot(); plot(dataToPlot, settings); AxisX.WholeRange.AutoSideMargins = true; AxisX.WholeRange.SideMarginsValue = 0.5D; }
public DiscreteDistributionData CreateFor(IVectorialParametersContainer parameterContainer, DistributionSettings settings, IReadOnlyList <string> allDiscreteValues, IComparer <string> comparer) { var data = new DiscreteDistributionData(settings.AxisCountMode); //all genders var allGenders = allGendersFrom(parameterContainer, allDiscreteValues.Count); int allItemsForSelectedGender = numberOfItemsFor(allGenders, settings.SelectedGender); //group the values by gender var valueGenders = allDiscreteValues.Select((value, index) => new { Value = value, Gender = allGenders[index] }) .OrderBy(x => x.Value, comparer) .GroupBy(x => x.Gender); foreach (var valueGender in valueGenders) { if (!shouldDisplayGender(valueGender.Key, settings.SelectedGender)) { continue; } var valuesByGenderAndCovariates = valueGender.GroupBy(x => x.Value).ToList(); foreach (var value in valuesByGenderAndCovariates) { double count = value.Count(); if (settings.AxisCountMode == AxisCountMode.Percent) { count = count * 100.0 / allItemsForSelectedGender; } data.AddData(value.Key, count, _representationInfoRepository.DisplayNameFor(valueGender.Key)); } } return(data); }
public void Plot(DiscreteDistributionData dataToPlot, DistributionSettings settings) { chart.Plot(dataToPlot, settings); }