private void UpdateDensityChart(DensityChart densityChart, string variable, IList <int> indices = null)
        {
            if (densityComboBox.SelectedIndex == 0)
            {
                return;
            }
            if (indices == null)
            {
                indices = GetDensityIndices(densityComboBox.SelectedIndex).ToList();
            }
            if (Content.ProblemData.Dataset.VariableHasType <double>(variable))
            {
                var data = Content.ProblemData.Dataset.GetDoubleValues(variable, indices).ToList();
                var plot = partialDependencePlots[variable] as PartialDependencePlot;
                if (plot != null)
                {
                    var min     = plot.FixedXAxisMin;
                    var max     = plot.FixedXAxisMax;
                    var buckets = plot.DrawingSteps;
                    if (min.HasValue && max.HasValue)
                    {
                        densityChart.UpdateChart(data, min.Value, max.Value, buckets);
                        densityChart.Width = plot.Width;

                        var gcPlotPosition = plot.InnerPlotPosition;
                        densityChart.Left  = (int)(gcPlotPosition.X / 100.0 * plot.Width);
                        densityChart.Width = (int)(gcPlotPosition.Width / 100.0 * plot.Width);

                        densityChart.Visible = true;
                    }
                    plot.UpdateTitlePosition();
                }
            }
            else if (Content.ProblemData.Dataset.VariableHasType <string>(variable))
            {
                var data = Content.ProblemData.Dataset.GetStringValues(variable).ToList();
                var plot = partialDependencePlots[variable] as FactorPartialDependencePlot;
                if (plot != null)
                {
                    densityChart.UpdateChart(data);
                    densityChart.Width = plot.Width;

                    var gcPlotPosition = plot.InnerPlotPosition;
                    densityChart.Left  = (int)(gcPlotPosition.X / 100.0 * plot.Width);
                    densityChart.Width = (int)(gcPlotPosition.Width / 100.0 * plot.Width);

                    densityChart.Visible = true;

                    plot.UpdateTitlePosition();
                }
            }
        }
Beispiel #2
0
        private void UpdateDensityChart(DensityChart densityChart, string variable, IList <int> indices = null)
        {
            if (densityComboBox.SelectedIndex == 0)
            {
                return;
            }
            if (indices == null)
            {
                indices = GetDensityIndices(densityComboBox.SelectedIndex).ToList();
            }
            var data          = Content.ProblemData.Dataset.GetDoubleValues(variable, indices).ToList();
            var gradientChart = gradientCharts[variable];
            var min           = gradientChart.FixedXAxisMin;
            var max           = gradientChart.FixedXAxisMax;
            var buckets       = gradientChart.DrawingSteps;

            if (min.HasValue && max.HasValue)
            {
                densityChart.UpdateChart(data, min.Value, max.Value, buckets);
                densityChart.Width = gradientChart.Width;

                var gcPlotPosition = gradientChart.InnerPlotPosition;
                densityChart.Left  = (int)(gcPlotPosition.X / 100.0 * gradientChart.Width);
                densityChart.Width = (int)(gcPlotPosition.Width / 100.0 * gradientChart.Width);

                densityChart.Visible = true;
            }

            gradientChart.UpdateTitlePosition();
        }
    private void UpdateDensityChart(DensityChart densityChart, string variable, IList<int> indices = null) {
      if (densityComboBox.SelectedIndex == 0)
        return;
      if (indices == null) {
        indices = GetDensityIndices(densityComboBox.SelectedIndex).ToList();
      }
      var data = Content.ProblemData.Dataset.GetDoubleValues(variable, indices).ToList();
      var gradientChart = gradientCharts[variable];
      var min = gradientChart.FixedXAxisMin;
      var max = gradientChart.FixedXAxisMax;
      var buckets = gradientChart.DrawingSteps;
      if (min.HasValue && max.HasValue) {
        densityChart.UpdateChart(data, min.Value, max.Value, buckets);
        densityChart.Width = gradientChart.Width;

        var gcPlotPosition = gradientChart.InnerPlotPosition;
        densityChart.Left = (int)(gcPlotPosition.X / 100.0 * gradientChart.Width);
        densityChart.Width = (int)(gcPlotPosition.Width / 100.0 * gradientChart.Width);

        densityChart.Visible = true;
      }

      gradientChart.UpdateTitlePosition();
    }