Ignore:
Timestamp:
12/09/16 11:35:42 (4 years ago)
Author:
pfleck
Message:

#2709

  • Removed some groupboxes in ViewShortcutListView.
  • Removed unnecessary IViewChartShortcut
  • Split ScatterPlot Multi and Single in to separate contents.
  • Renamed Color-combo box in Scatterplot to "Group".
File:
1 copied

Legend:

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

    r14452 r14467  
    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;
     
    3027
    3128  [Item("ScatterPlot", "Represents a scatter plot.")]
    32   public class ScatterPlotContent : PreprocessingChartContent {
     29  public class SingleScatterPlotContent : ScatterPlotContent {
    3330
    3431    public string SelectedXVariable { get; set; }
    3532    public string SelectedYVariable { get; set; }
    36     public string SelectedColorVariable { get; set; }
     33    public string SelectedGroupVariable { get; set; }
    3734
    38     public ScatterPlotContent(IFilteredPreprocessingData preprocessingData)
     35    public SingleScatterPlotContent(IFilteredPreprocessingData preprocessingData)
    3936      : base(preprocessingData) {
    4037    }
    4138
    42     public ScatterPlotContent(ScatterPlotContent content, Cloner cloner)
     39    public SingleScatterPlotContent(SingleScatterPlotContent content, Cloner cloner)
    4340      : base(content, cloner) {
    4441      this.SelectedXVariable = content.SelectedXVariable;
    4542      this.SelectedYVariable = content.SelectedYVariable;
    46       this.SelectedColorVariable = content.SelectedColorVariable;
     43      this.SelectedGroupVariable = content.SelectedGroupVariable;
    4744    }
    4845
     
    5249
    5350    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;
     51      return new SingleScatterPlotContent(this, cloner);
    9252    }
    9353  }
Note: See TracChangeset for help on using the changeset viewer.