Changeset 15097 for stable/HeuristicLab.Analysis/3.3/DataVisualization
- Timestamp:
- 06/30/17 16:41:06 (7 years ago)
- Location:
- stable
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 14435-14439,14457-14458,14493,14508,14516,14519,14582,14740,14860-14861,14982,14984,14987,14992,15042,15068,15095
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Analysis
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Analysis merged: 14493,14582,15068
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Analysis/3.3/DataVisualization/DataRowVisualProperties.cs
r14186 r15097 123 123 } 124 124 } 125 private int bins; 126 public int Bins { 127 get { return bins; } 128 set { 129 if (bins != value) { 130 bins = value; 131 OnPropertyChanged("Bins"); 132 } 133 } 134 } 135 private bool exactBins; 136 public bool ExactBins { 137 get { return exactBins; } 138 set { 139 if (exactBins != value) { 140 exactBins = value; 141 OnPropertyChanged("ExactBins"); 142 } 143 } 144 } 125 145 126 private double scaleFactor; 146 127 public double ScaleFactor { … … 215 196 set { lineWidth = value; } 216 197 } 217 [Storable(Name = "Bins")]218 private int StorableBins {219 get { return bins; }220 set { bins = value; }221 }222 [Storable(Name = "ExactBins")]223 private bool StorableExactBins {224 get { return exactBins; }225 set { exactBins = value; }226 }227 198 [Storable(Name = "ScaleFactor")] 228 199 private double StorableScaleFactor { … … 240 211 set { displayName = value; } 241 212 } 213 #endregion 214 215 #region Histogram Properties - Backwards Compatability 216 internal enum DataRowHistogramAggregation { 217 Overlapping, 218 SideBySide, 219 Stacked 220 } 221 222 internal int? Bins { get; private set; } 223 internal bool? ExactBins { get; private set; } 224 internal DataRowHistogramAggregation? Aggregation { get; private set; } 225 226 [Storable(Name = "Bins", AllowOneWay = true)] 227 private int StorableBins { set { Bins = value; } } 228 [Storable(Name = "ExactBins", AllowOneWay = true)] 229 private bool StorableExactBins { set { ExactBins = value; } } 230 [Storable(Name = "Aggregation", AllowOneWay = true)] 231 private DataRowHistogramAggregation StorableAggregation { set { Aggregation = value; } } 242 232 #endregion 243 233 … … 253 243 this.startIndexZero = original.startIndexZero; 254 244 this.lineWidth = original.lineWidth; 255 this.bins = original.bins;256 this.exactBins = original.exactBins;257 245 this.scaleFactor = original.scaleFactor; 258 246 this.displayName = original.displayName; … … 267 255 startIndexZero = false; 268 256 lineWidth = 1; 269 bins = 10;270 exactBins = false;271 257 scaleFactor = 1.0; 272 258 displayName = String.Empty; … … 294 280 if (secondXAxis == default(bool) 295 281 && lineStyle == default(DataRowLineStyle) 296 && lineWidth == default(int) && bins == default(int) && exactBins == default(bool)297 282 && displayName == default(string)) { 298 283 secondXAxis = false; 299 284 lineStyle = DataRowLineStyle.Solid; 300 285 lineWidth = 1; 301 bins = 10;302 exactBins = false;303 286 displayName = String.Empty; 304 287 } -
stable/HeuristicLab.Analysis/3.3/DataVisualization/DataTable.cs
r14186 r15097 112 112 if (VisualProperties == null) VisualProperties = new DataTableVisualProperties(name); 113 113 if (VisualProperties.Title == null) VisualProperties.Title = name; 114 115 #region Backwards Compatability Histogram Visual Properties 116 var rowProperties = Rows.Select(r => r.VisualProperties).ToList(); 117 if (rowProperties.Any(r => r.Bins.HasValue)) 118 VisualProperties.HistogramBins = rowProperties.Where(r => r.Bins.HasValue).Max(r => r.Bins.Value); 119 if (rowProperties.Any(r => r.ExactBins.HasValue)) 120 VisualProperties.HistogramExactBins = rowProperties.Where(r => r.ExactBins.HasValue).Any(r => r.ExactBins.Value); 121 if (rowProperties.Any(r => r.Aggregation.HasValue)) { 122 var maxOccurrence = rowProperties 123 .Where(r => r.Aggregation.HasValue).Select(r => r.Aggregation.Value) 124 .GroupBy(x => x).OrderByDescending(x => x.Count()) 125 .First().Key; 126 VisualProperties.HistogramAggregation = (DataTableVisualProperties.DataTableHistogramAggregation)maxOccurrence; 127 } 128 #endregion 114 129 } 115 130 #endregion -
stable/HeuristicLab.Analysis/3.3/DataVisualization/DataTableVisualProperties.cs
r14186 r15097 20 20 #endregion 21 21 22 using System; 23 using System.ComponentModel; 24 using System.Drawing; 22 25 using HeuristicLab.Common; 23 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 24 using System.ComponentModel;25 using System.Drawing;26 27 27 28 namespace HeuristicLab.Analysis { … … 31 32 [StorableClass] 32 33 public class DataTableVisualProperties : DeepCloneable, INotifyPropertyChanged { 34 35 #region Histogram Aggregation 36 public enum DataTableHistogramAggregation { 37 Overlapping, 38 SideBySide, 39 Stacked 40 } 41 #endregion 42 33 43 private Font titleFont; 34 44 public Font TitleFont { … … 352 362 secondYAxisLogScale = value; 353 363 OnPropertyChanged("SecondYAxisLogScale"); 364 } 365 } 366 367 private int histogramBins; 368 public int HistogramBins { 369 get { return histogramBins; } 370 set { 371 if (histogramBins != value) { 372 histogramBins = value; 373 OnPropertyChanged("HistogramBins"); 374 } 375 } 376 } 377 378 private bool histogramExactBins; 379 public bool HistogramExactBins { 380 get { return histogramExactBins; } 381 set { 382 if (histogramExactBins != value) { 383 histogramExactBins = value; 384 OnPropertyChanged("HistogramExactBins"); 385 } 386 } 387 } 388 389 private DataTableHistogramAggregation histogramAggregation; 390 public DataTableHistogramAggregation HistogramAggregation { 391 get { return histogramAggregation; } 392 set { 393 if (histogramAggregation != value) { 394 histogramAggregation = value; 395 OnPropertyChanged("HistogramAggregation"); 396 } 354 397 } 355 398 } … … 500 543 get { return secondYAxisLogScale; } 501 544 set { secondYAxisLogScale = value; } 545 } 546 [Storable(Name = "HistogramBins", DefaultValue = 10)] 547 private int StorableHistogramBins { 548 get { return histogramBins; } 549 set { histogramBins = value; } 550 } 551 [Storable(Name = "HistogramExactBins", DefaultValue = false)] 552 private bool StorableHistogramExactBins { 553 get { return histogramExactBins; } 554 set { histogramExactBins = value; } 555 } 556 [Storable(Name = "HistogramAggregation", DefaultValue = DataTableHistogramAggregation.Overlapping)] 557 private DataTableHistogramAggregation StorableHistogramAggregation { 558 get { return histogramAggregation; } 559 set { histogramAggregation = value; } 502 560 } 503 561 #endregion … … 536 594 this.yAxisLogScale = original.yAxisLogScale; 537 595 this.secondYAxisLogScale = original.secondYAxisLogScale; 596 this.histogramBins = original.histogramBins; 597 this.histogramExactBins = original.histogramExactBins; 598 this.histogramAggregation = original.histogramAggregation; 538 599 } 539 600 public DataTableVisualProperties() { … … 565 626 this.yAxisLogScale = false; 566 627 this.secondYAxisLogScale = false; 628 histogramBins = 10; 629 histogramExactBins = false; 630 histogramAggregation = DataTableHistogramAggregation.Overlapping; 567 631 } 568 632 public DataTableVisualProperties(string title) -
stable/HeuristicLab.Analysis/3.3/DataVisualization/ScatterPlotDataRowVisualProperties.cs
r14186 r15097 45 45 } 46 46 #endregion 47 #region 48 public enum ScatterPlotDataRowRegressionType { 49 None, 50 Linear, 51 Polynomial, 52 Exponential, 53 Logarithmic, 54 Power 55 } 56 #endregion 47 57 48 58 private Color color; … … 101 111 } 102 112 } 113 private ScatterPlotDataRowRegressionType regressionType; 114 public ScatterPlotDataRowRegressionType RegressionType { 115 get { return regressionType; } 116 set { 117 if (regressionType != value) { 118 regressionType = value; 119 OnPropertyChanged("RegressionType"); 120 } 121 } 122 } 123 private int polynomialRegressionOrder; 124 public int PolynomialRegressionOrder { 125 get { return polynomialRegressionOrder; } 126 set { 127 if (polynomialRegressionOrder != value) { 128 polynomialRegressionOrder = value; 129 OnPropertyChanged("PolynomialRegressionOrder"); 130 } 131 } 132 } 133 private bool isRegressionVisibleInLegend; 134 public bool IsRegressionVisibleInLegend { 135 get { return isRegressionVisibleInLegend; } 136 set { 137 if (isRegressionVisibleInLegend != value) { 138 isRegressionVisibleInLegend = value; 139 OnPropertyChanged("IsRegressionVisibleInLegend"); 140 } 141 } 142 } 143 private string regressionDisplayName; 144 public string RegressionDisplayName { 145 get { return regressionDisplayName ?? string.Empty; } 146 set { 147 if (regressionDisplayName != value) { 148 if (value == null && regressionDisplayName != string.Empty) { 149 regressionDisplayName = string.Empty; 150 OnPropertyChanged("RegressionDisplayName"); 151 } else if (value != null) { 152 regressionDisplayName = value; 153 OnPropertyChanged("RegressionDisplayName"); 154 } 155 } 156 } 157 } 103 158 104 159 #region Persistence Properties … … 127 182 get { return displayName; } 128 183 set { displayName = value; } 184 } 185 [Storable(Name = "RegressionType")] 186 private ScatterPlotDataRowRegressionType StorableRegressionType { 187 get { return regressionType; } 188 set { regressionType = value; } 189 } 190 [Storable(Name = "PolynomialRegressionOrder", DefaultValue = 2)] 191 private int StorablePolynomialRegressionOrder { 192 get { return polynomialRegressionOrder; } 193 set { polynomialRegressionOrder = value; } 194 } 195 [Storable(Name = "IsRegressionVisibleInLegend", DefaultValue = true)] 196 private bool StorableIsRegressionVisibleInLegend { 197 get { return isRegressionVisibleInLegend; } 198 set { isRegressionVisibleInLegend = value; } 199 } 200 [Storable(Name = "RegressionDisplayName")] 201 private string StorableRegressionDisplayName { 202 get { return regressionDisplayName; } 203 set { regressionDisplayName = value; } 129 204 } 130 205 #endregion … … 139 214 this.displayName = original.displayName; 140 215 this.isVisibleInLegend = original.isVisibleInLegend; 216 this.regressionType = original.regressionType; 217 this.polynomialRegressionOrder = original.polynomialRegressionOrder; 218 this.isRegressionVisibleInLegend = original.isRegressionVisibleInLegend; 219 this.regressionDisplayName = original.regressionDisplayName; 141 220 } 142 221 public ScatterPlotDataRowVisualProperties() { … … 146 225 displayName = String.Empty; 147 226 isVisibleInLegend = true; 227 regressionType = ScatterPlotDataRowRegressionType.None; 228 polynomialRegressionOrder = 2; 229 isRegressionVisibleInLegend = true; 230 regressionDisplayName = string.Empty; 148 231 } 149 232 public ScatterPlotDataRowVisualProperties(string displayName)
Note: See TracChangeset
for help on using the changeset viewer.