Changeset 13846 for branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Problems.DataAnalysis.Views/3.4/RegressionSolutionTargetResponseGradientView.cs
- Timestamp:
- 05/12/16 15:11:30 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.RegressionSolutionGradientView/HeuristicLab.Problems.DataAnalysis.Views/3.4/RegressionSolutionTargetResponseGradientView.cs
r13845 r13846 43 43 InitializeComponent(); 44 44 charts = new Dictionary<string, GradientChart>(); 45 46 limitView.Content = new DoubleLimit(0, 1); 45 47 } 46 48 … … 53 55 base.RegisterContentEvents(); 54 56 variableListView.ItemChecked += variableListView_ItemChecked; 57 limitView.Content.ValueChanged += limit_ValueChanged; 58 automaticYAxisCheckBox.CheckedChanged += automaticYAxisCheckBox_CheckedChanged; 55 59 } 56 60 57 61 protected override void DeregisterContentEvents() { 58 62 variableListView.ItemChecked -= variableListView_ItemChecked; 63 limitView.Content.ValueChanged -= limit_ValueChanged; 64 automaticYAxisCheckBox.CheckedChanged -= automaticYAxisCheckBox_CheckedChanged; 59 65 base.DeregisterContentEvents(); 60 66 } … … 64 70 if (Content == null) return; 65 71 var problemData = Content.ProblemData; 72 73 // Init Y-axis range 74 double min = double.MaxValue, max = double.MinValue; 75 var trainingTarget = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, problemData.TrainingIndices); 76 foreach (var t in trainingTarget) { 77 if (t < min) min = t; 78 if (t > max) max = t; 79 } 80 double range = max - min; 81 const double scale = 1.0 / 3.0; 82 double axisMin, axisMax, axisInterval; 83 ChartUtil.CalculateAxisInterval(min - scale * range, max + scale * range, 5, out axisMin, out axisMax, out axisInterval); 84 automaticYAxisCheckBox.Checked = false; 85 limitView.ReadOnly = false; 86 limitView.Content.Lower = axisMin; 87 limitView.Content.Upper = axisMax; 88 66 89 // create dataset 67 90 var allowedInputVariables = Content.ProblemData.AllowedInputVariables; … … 87 110 88 111 if (recalculations.All(t => t.IsCompleted)) 89 S yncYAxis();112 SetupYAxis(); 90 113 }; 91 114 gradientChart.Configure(new[] { Content }, sharedFixedVariables, variableName, Points); … … 101 124 } 102 125 103 private void SyncYAxis() { 104 double min = double.MaxValue, max = double.MinValue; 105 foreach (var chart in VisibleCharts) { 106 if (chart.YMin < min) min = chart.YMin; 107 if (chart.YMax > max) max = chart.YMax; 108 } 109 double axisMin, axisMax, axisInterval; 110 ChartUtil.CalculateAxisInterval(min, max, 5, out axisMin, out axisMax, out axisInterval); 126 private void SetupYAxis() { 127 double axisMin, axisMax; 128 if (automaticYAxisCheckBox.Checked) { 129 double min = double.MaxValue, max = double.MinValue; 130 foreach (var chart in VisibleCharts) { 131 if (chart.YMin < min) min = chart.YMin; 132 if (chart.YMax > max) max = chart.YMax; 133 } 134 135 double axisInterval; 136 ChartUtil.CalculateAxisInterval(min, max, 5, out axisMin, out axisMax, out axisInterval); 137 } else { 138 axisMin = limitView.Content.Lower; 139 axisMax = limitView.Content.Upper; 140 } 111 141 112 142 foreach (var chart in VisibleCharts) { … … 146 176 tl.Controls.Remove(chart); 147 177 } 148 S yncYAxis();178 SetupYAxis(); 149 179 150 180 var count = tl.Controls.Count; … … 163 193 tl.ResumeLayout(); 164 194 } 195 196 private void automaticYAxisCheckBox_CheckedChanged(object sender, EventArgs e) { 197 limitView.ReadOnly = automaticYAxisCheckBox.Checked; 198 SetupYAxis(); 199 } 200 201 private void limit_ValueChanged(object sender, EventArgs e) { 202 if (automaticYAxisCheckBox.Checked) 203 return; 204 SetupYAxis(); 205 } 165 206 } 166 207 }
Note: See TracChangeset
for help on using the changeset viewer.