Changeset 7129 for branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionLineChartView.cs
- Timestamp:
- 12/05/11 20:17:59 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionLineChartView.cs
r6802 r7129 36 36 private const string PROGNOSEDVALUES_TEST_SERIES_NAME = "Prognosed Values (test)"; 37 37 private const string PROGNOSEDVALUES_ALL_SERIES_NAME = "Prognosed Values (all samples)"; 38 private string prevTargetVariable; 38 39 39 40 public new ITimeSeriesPrognosisSolution Content { … … 57 58 } 58 59 60 private void UpdateTargetVariables() { 61 // populate combobox 62 targetVariableComboBox.Items.Clear(); 63 if (Content != null) { 64 foreach (var targetVariable in Content.ProblemData.TargetVariables) 65 targetVariableComboBox.Items.Add(targetVariable); 66 67 targetVariableComboBox.SelectedIndex = 0; 68 } 69 } 70 71 72 59 73 private void RedrawChart() { 60 74 this.chart.Series.Clear(); … … 62 76 this.chart.ChartAreas[0].AxisX.Minimum = 0; 63 77 this.chart.ChartAreas[0].AxisX.Maximum = Content.ProblemData.Dataset.Rows - 1; 78 string targetVariable = (string)targetVariableComboBox.SelectedItem; 79 int varIndex = Content.ProblemData.TargetVariables.ToList().IndexOf(targetVariable); 64 80 65 81 this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME); 66 this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = Content.ProblemData.TargetVariable;82 this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = targetVariable; 67 83 this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine; 68 84 this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Enumerable.Range(0, Content.ProblemData.Dataset.Rows).ToArray(), 69 Content.ProblemData.Dataset.GetDoubleValues( Content.ProblemData.TargetVariable).ToArray());85 Content.ProblemData.Dataset.GetDoubleValues(targetVariable).ToArray()); 70 86 71 87 this.chart.Series.Add(PROGNOSEDVALUES_TRAINING_SERIES_NAME); 72 88 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].LegendText = PROGNOSEDVALUES_TRAINING_SERIES_NAME; 73 89 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].ChartType = SeriesChartType.FastLine; 74 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points.DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(), Content.PrognosedTrainingValues.ToArray()); 90 if (prognosedValuesCheckbox.Checked) { 91 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points 92 .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(), 93 Content.PrognosedTrainingValues.ElementAt(varIndex).ToArray()); 94 } else { 95 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points 96 .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(), 97 Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes, 1).Select(v => v.ElementAt(varIndex).First()).ToArray()); 98 } 75 99 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Tag = Content; 76 100 this.chart.DataManipulator.InsertEmptyPoints(1, IntervalType.Number, PROGNOSEDVALUES_TRAINING_SERIES_NAME); … … 82 106 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].LegendText = PROGNOSEDVALUES_TEST_SERIES_NAME; 83 107 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].ChartType = SeriesChartType.FastLine; 84 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points.DataBindXY(Content.ProblemData.TestIndizes.ToArray(), Content.PrognosedTestValues.ToArray()); 108 if (prognosedValuesCheckbox.Checked) { 109 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points 110 .DataBindXY(Content.ProblemData.TestIndizes.ToArray(), 111 Content.PrognosedTestValues.ElementAt(varIndex).ToArray()); 112 } else { 113 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points 114 .DataBindXY(Content.ProblemData.TestIndizes.ToArray(), 115 Content.GetPrognosedValues(Content.ProblemData.TestIndizes, 1).Select( 116 v => v.ElementAt(varIndex).First()).ToArray()); 117 } 85 118 this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Tag = Content; 86 87 88 int[] allIndizes = Enumerable.Range(0, Content.ProblemData.Dataset.Rows).Except(Content.ProblemData.TrainingIndizes).Except(Content.ProblemData.TestIndizes).ToArray();89 var estimatedValues = Content.PrognosedValues.ToArray();90 List<double> allEstimatedValues = allIndizes.Select(index => estimatedValues[index]).ToList();91 92 this.chart.Series.Add(PROGNOSEDVALUES_ALL_SERIES_NAME);93 this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME].LegendText = PROGNOSEDVALUES_ALL_SERIES_NAME;94 this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME].ChartType = SeriesChartType.FastLine;95 this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME].Points.DataBindXY(allIndizes, allEstimatedValues);96 this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME].Tag = Content;97 this.chart.DataManipulator.InsertEmptyPoints(1, IntervalType.Number, PROGNOSEDVALUES_ALL_SERIES_NAME);98 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].EmptyPointStyle.BorderWidth = 0;99 this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].EmptyPointStyle.MarkerStyle = MarkerStyle.None;100 this.ToggleSeriesData(this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME]);101 119 102 120 UpdateCursorInterval(); … … 130 148 protected override void OnContentChanged() { 131 149 base.OnContentChanged(); 150 UpdateTargetVariables(); 151 } 152 153 private void Content_ProblemDataChanged(object sender, EventArgs e) { 154 UpdateTargetVariables(); 155 } 156 private void Content_ModelChanged(object sender, EventArgs e) { 132 157 RedrawChart(); 133 158 } 134 private void Content_ProblemDataChanged(object sender, EventArgs e) { 159 160 private void targetVariableComboBox_SelectedIndexChanged(object sender, EventArgs e) { 135 161 RedrawChart(); 136 162 } 137 private void Content_ModelChanged(object sender, EventArgs e) {163 private void prognosedValuesCheckbox_CheckedChanged(object sender, EventArgs e) { 138 164 RedrawChart(); 139 165 } … … 207 233 } 208 234 } else if (Content != null) { 209 string targetVariableName = Content.ProblemData.TargetVariable; 235 string targetVariable = (string)targetVariableComboBox.SelectedItem; 236 int varIndex = Content.ProblemData.TargetVariables.ToList().IndexOf(targetVariable); 237 210 238 211 239 IEnumerable<int> indizes = null; 212 240 IEnumerable<double> predictedValues = null; 213 241 switch (series.Name) { 214 case PROGNOSEDVALUES_ALL_SERIES_NAME:215 indizes = Enumerable.Range(0, Content.ProblemData.Dataset.Rows).Except(Content.ProblemData.TrainingIndizes).Except(Content.ProblemData.TestIndizes).ToArray();216 var estimatedValues = Content.PrognosedValues.ToArray();217 predictedValues = indizes.Select(index => estimatedValues[index]).ToList();218 break;219 242 case PROGNOSEDVALUES_TRAINING_SERIES_NAME: 220 243 indizes = Content.ProblemData.TrainingIndizes.ToArray(); 221 predictedValues = Content.PrognosedTrainingValues. ToArray();244 predictedValues = Content.PrognosedTrainingValues.ElementAt(varIndex).ToArray(); 222 245 break; 223 246 case PROGNOSEDVALUES_TEST_SERIES_NAME: 224 247 indizes = Content.ProblemData.TestIndizes.ToArray(); 225 predictedValues = Content.PrognosedTestValues. ToArray();248 predictedValues = Content.PrognosedTestValues.ElementAt(varIndex).ToArray(); 226 249 break; 227 250 } … … 255 278 e.LegendItems[3].Cells[1].ForeColor = this.chart.Series[PROGNOSEDVALUES_ALL_SERIES_NAME].Points.Count == 0 ? Color.Gray : Color.Black; 256 279 } 280 257 281 } 258 282 }
Note: See TracChangeset
for help on using the changeset viewer.