Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/07/16 15:07:26 (7 years ago)
Author:
pfleck
Message:

#2709

  • Added a separate MultiScatterPlot entry and removed the ViewHost views-icon instead.
  • Moved legend of DataCompletenessChart to the top and removed the title instead.
File:
1 copied

Legend:

Unmodified
Added
Removed
  • branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing/3.4/Content/MultiScatterPlotContent.cs

    r14452 r14462  
    2020#endregion
    2121
    22 using System.Collections.Generic;
    2322using System.Drawing;
    24 using System.Linq;
    25 using HeuristicLab.Analysis;
    2623using HeuristicLab.Common;
    2724using HeuristicLab.Core;
     
    2926namespace HeuristicLab.DataPreprocessing {
    3027
    31   [Item("ScatterPlot", "Represents a scatter plot.")]
    32   public class ScatterPlotContent : PreprocessingChartContent {
     28  [Item("MultiScatterPlot", "Represents a multi scatter plot.")]
     29  public class MultiScatterPlotContent : ScatterPlotContent {
    3330
    34     public string SelectedXVariable { get; set; }
    35     public string SelectedYVariable { get; set; }
    36     public string SelectedColorVariable { get; set; }
    37 
    38     public ScatterPlotContent(IFilteredPreprocessingData preprocessingData)
     31    public MultiScatterPlotContent(IFilteredPreprocessingData preprocessingData)
    3932      : base(preprocessingData) {
    4033    }
    4134
    42     public ScatterPlotContent(ScatterPlotContent content, Cloner cloner)
     35    public MultiScatterPlotContent(MultiScatterPlotContent content, Cloner cloner)
    4336      : base(content, cloner) {
    44       this.SelectedXVariable = content.SelectedXVariable;
    45       this.SelectedYVariable = content.SelectedYVariable;
    46       this.SelectedColorVariable = content.SelectedColorVariable;
    4737    }
    4838
     
    5242
    5343    public override IDeepCloneable Clone(Cloner cloner) {
    54       return new ScatterPlotContent(this, cloner);
    55     }
    56 
    57     public ScatterPlot CreateScatterPlot(string variableNameX, string variableNameY, string variableNameColor = "-") {
    58       ScatterPlot scatterPlot = new ScatterPlot();
    59 
    60       IList<double> xValues = PreprocessingData.GetValues<double>(PreprocessingData.GetColumnIndex(variableNameX));
    61       IList<double> yValues = PreprocessingData.GetValues<double>(PreprocessingData.GetColumnIndex(variableNameY));
    62       if (variableNameColor == null || variableNameColor == "-") {
    63         List<Point2D<double>> points = new List<Point2D<double>>();
    64 
    65         for (int i = 0; i < xValues.Count; i++) {
    66           Point2D<double> point = new Point2D<double>(xValues[i], yValues[i]);
    67           points.Add(point);
    68         }
    69 
    70         ScatterPlotDataRow scdr = new ScatterPlotDataRow(variableNameX + " - " + variableNameY, "", points);
    71         scdr.VisualProperties.IsVisibleInLegend = false;
    72         scatterPlot.Rows.Add(scdr);
    73 
    74       } else {
    75         var colorValues = PreprocessingData.GetValues<double>(PreprocessingData.GetColumnIndex(variableNameColor));
    76         var data = xValues.Zip(yValues, (x, y) => new { x, y }).Zip(colorValues, (v, c) => new { v.x, v.y, c }).ToList();
    77         var gradients = ColorGradient.Colors;
    78         int curGradient = 0;
    79         int numColors = colorValues.Distinct().Count();
    80         foreach (var colorValue in colorValues.Distinct()) {
    81           var values = data.Where(x => x.c == colorValue);
    82           var row = new ScatterPlotDataRow(
    83             variableNameX + " - " + variableNameY + " (" + colorValue + ")",
    84             "",
    85             values.Select(v => new Point2D<double>(v.x, v.y)),
    86             new ScatterPlotDataRowVisualProperties() { Color = gradients[curGradient] });
    87           curGradient += gradients.Count / numColors;
    88           scatterPlot.Rows.Add(row);
    89         }
    90       }
    91       return scatterPlot;
     44      return new MultiScatterPlotContent(this, cloner);
    9245    }
    9346  }
Note: See TracChangeset for help on using the changeset viewer.