public void Plot(DiscreteDistributionData dataToPlot, DistributionSettings settings)
 {
     ResetPlot();
     plot(dataToPlot, settings);
     AxisX.WholeRange.AutoSideMargins  = true;
     AxisX.WholeRange.SideMarginsValue = 0.5D;
 }
Example #2
0
        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);
        }
Example #3
0
 public void Plot(DiscreteDistributionData dataToPlot, DistributionSettings settings)
 {
     chart.Plot(dataToPlot, settings);
 }