- Timestamp:
- 12/07/16 15:07:26 (8 years ago)
- Location:
- branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing/3.4
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing/3.4/Content/MultiScatterPlotContent.cs
r14452 r14462 20 20 #endregion 21 21 22 using System.Collections.Generic;23 22 using System.Drawing; 24 using System.Linq;25 using HeuristicLab.Analysis;26 23 using HeuristicLab.Common; 27 24 using HeuristicLab.Core; … … 29 26 namespace HeuristicLab.DataPreprocessing { 30 27 31 [Item(" ScatterPlot", "Represents ascatter plot.")]32 public class ScatterPlotContent : PreprocessingChartContent {28 [Item("MultiScatterPlot", "Represents a multi scatter plot.")] 29 public class MultiScatterPlotContent : ScatterPlotContent { 33 30 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) 39 32 : base(preprocessingData) { 40 33 } 41 34 42 public ScatterPlotContent(ScatterPlotContent content, Cloner cloner)35 public MultiScatterPlotContent(MultiScatterPlotContent content, Cloner cloner) 43 36 : base(content, cloner) { 44 this.SelectedXVariable = content.SelectedXVariable;45 this.SelectedYVariable = content.SelectedYVariable;46 this.SelectedColorVariable = content.SelectedColorVariable;47 37 } 48 38 … … 52 42 53 43 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); 92 45 } 93 46 } -
branches/DataPreprocessing Enhancements/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj
r14459 r14462 120 120 </ItemGroup> 121 121 <ItemGroup> 122 <Compile Include="Content\MultiScatterPlotContent.cs" /> 122 123 <Compile Include="Content\ScatterPlotContent.cs" /> 123 124 <Compile Include="Content\DataCompletenessChartContent.cs" />
Note: See TracChangeset
for help on using the changeset viewer.