Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/08/12 14:04:17 (12 years ago)
Author:
mkommend
Message:

#1081: Intermediate commit of trunk updates - interpreter changes must be redone.

Location:
branches/HeuristicLab.TimeSeries
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries

    • Property svn:ignore
      •  

        old new  
        2020bin
        2121protoc.exe
         22_ReSharper.HeuristicLab.TimeSeries-3.3
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.Viewsmergedeligible
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Problems.DataAnalysis.Viewsmergedeligible
      /trunk/sources/HeuristicLab.Problems.DataAnalysis.Viewsmergedeligible
      /branches/Benchmarking/sources/HeuristicLab.Problems.DataAnalysis.Views6917-7005
      /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Views4656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Views5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Problems.DataAnalysis.Views5815-6180
      /branches/GP.Grammar.Editor/HeuristicLab.Problems.DataAnalysis.Views6284-6795
      /branches/NET40/sources/HeuristicLab.Problems.DataAnalysis.Views5138-5162
      /branches/ParallelEngine/HeuristicLab.Problems.DataAnalysis.Views5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Views7568-7810
      /branches/QAPAlgorithms/HeuristicLab.Problems.DataAnalysis.Views6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Problems.DataAnalysis.Views6828
      /branches/SuccessProgressAnalysis/HeuristicLab.Problems.DataAnalysis.Views5370-5682
      /branches/Trunk/HeuristicLab.Problems.DataAnalysis.Views6829-6865
      /branches/VNS/HeuristicLab.Problems.DataAnalysis.Views5594-5752
      /branches/histogram/HeuristicLab.Problems.DataAnalysis.Views5959-6341
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Views/3.4/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionLineChartView.cs

    r8010 r8430  
    1919 */
    2020#endregion
     21
    2122using System;
    2223using System.Collections.Generic;
     
    5051      this.chart.CustomizeAllChartAreas();
    5152      this.chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
     53      this.chart.ChartAreas[0].CursorX.Interval = 1;
    5254      this.chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
    5355      this.chart.ChartAreas[0].AxisX.IsStartedFromZero = true;
    54       this.chart.ChartAreas[0].CursorX.Interval = 1;
    5556
    5657      this.chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
     58      this.chart.ChartAreas[0].CursorY.Interval = 0.1;
    5759      this.chart.ChartAreas[0].AxisY.ScaleView.Zoomable = true;
    58       this.chart.ChartAreas[0].CursorY.Interval = 0;
     60
     61      this.chart.SuppressExceptions = false;
    5962    }
    6063
     
    6972        this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = targetVariable;
    7073        this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
    71         this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Enumerable.Range(0, Content.ProblemData.Dataset.Rows).ToArray(),
    72           Content.ProblemData.Dataset.GetDoubleValues(targetVariable).ToArray());
     74        AddDataPoints(chart.Series[TARGETVARIABLE_SERIES_NAME].Points, Enumerable.Range(0, Content.ProblemData.Dataset.Rows), Content.ProblemData.Dataset.GetDoubleValues(targetVariable));
     75        //this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Enumerable.Range(0, Content.ProblemData.Dataset.Rows).ToArray(),
     76        //  Content.ProblemData.Dataset.GetDoubleValues(targetVariable).ToArray());
    7377
    7478        this.chart.Series.Add(PROGNOSEDVALUES_TRAINING_SERIES_NAME);
     
    7680        this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].ChartType = SeriesChartType.FastLine;
    7781        if (prognosedValuesCheckbox.Checked) {
    78           this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points
    79             .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(),
    80                         Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TrainingIndizes.Count().ToEnumerable()).First().ToArray());
     82          //this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points
     83          //  .DataBindXY(Content.ProblemData.TrainingIndices.ToArray(),
     84          //              Content.GetPrognosedValues(Content.ProblemData.TrainingIndices.Take(1), Content.ProblemData.TrainingIndices.Count().ToEnumerable()).First().ToArray());
     85          AddDataPoints(chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points, Content.ProblemData.TrainingIndices, Content.GetPrognosedValues(Content.ProblemData.TrainingIndices.Take(1), Content.ProblemData.TrainingIndices.Count().ToEnumerable()).First());
    8186        } else {
    82           this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points
    83             .DataBindXY(Content.ProblemData.TrainingIndizes.ToArray(),
    84                         Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes, Enumerable.Repeat(1, Content.ProblemData.TrainingIndizes.Count())).SelectMany(x => x).ToArray());
     87          //this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points
     88          //  .DataBindXY(Content.ProblemData.TrainingIndices.ToArray(),
     89          //              Content.GetPrognosedValues(Content.ProblemData.TrainingIndices, Enumerable.Repeat(1, Content.ProblemData.TrainingIndices.Count())).SelectMany(x => x).ToArray());
     90          AddDataPoints(chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Points, Content.ProblemData.TrainingIndices, Content.GetPrognosedValues(Content.ProblemData.TrainingIndices, Enumerable.Repeat(1, Content.ProblemData.TrainingIndices.Count())).SelectMany(x => x));
    8591        }
    8692        this.chart.Series[PROGNOSEDVALUES_TRAINING_SERIES_NAME].Tag = Content;
     
    94100        this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].ChartType = SeriesChartType.FastLine;
    95101        if (prognosedValuesCheckbox.Checked) {
    96           this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points
    97             .DataBindXY(Content.ProblemData.TestIndizes.ToArray(),
    98                         Content.GetPrognosedValues(Content.ProblemData.TestIndizes.Take(1), Content.ProblemData.TestIndizes.Count().ToEnumerable()).First().ToArray());
     102          //this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points
     103          //  .DataBindXY(Content.ProblemData.TestIndices.ToArray(),
     104          //              Content.GetPrognosedValues(Content.ProblemData.TestIndices.Take(1), Content.ProblemData.TestIndices.Count().ToEnumerable()).First().ToArray());
     105          AddDataPoints(chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points, Content.ProblemData.TestIndices, Content.GetPrognosedValues(Content.ProblemData.TestIndices.Take(1), Content.ProblemData.TestIndices.Count().ToEnumerable()).First());
    99106        } else {
    100           this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points
    101             .DataBindXY(Content.ProblemData.TestIndizes.ToArray(),
    102                        Content.GetPrognosedValues(Content.ProblemData.TestIndizes, Enumerable.Repeat(1, Content.ProblemData.TestIndizes.Count())).SelectMany(x => x).ToArray());
     107          //this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points
     108          //  .DataBindXY(Content.ProblemData.TestIndices.ToArray(),
     109          //              Content.GetPrognosedValues(Content.ProblemData.TestIndices, Enumerable.Repeat(1, Content.ProblemData.TestIndices.Count())).SelectMany(x => x).ToArray());
     110          AddDataPoints(chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Points, Content.ProblemData.TestIndices, Content.GetPrognosedValues(Content.ProblemData.TestIndices, Enumerable.Repeat(1, Content.ProblemData.TestIndices.Count())).SelectMany(x => x));
    103111        }
    104112        this.chart.Series[PROGNOSEDVALUES_TEST_SERIES_NAME].Tag = Content;
    105 
    106113        UpdateCursorInterval();
    107114        this.UpdateStripLines();
     115      }
     116      chart.Refresh();
     117    }
     118
     119    private void AddDataPoints(DataPointCollection points, IEnumerable<int> xValues, IEnumerable<double> yValues) {
     120      var xValuesEnumerator = xValues.GetEnumerator();
     121      var yValuesEnumerator = yValues.GetEnumerator();
     122
     123      while (xValuesEnumerator.MoveNext() & yValuesEnumerator.MoveNext()) {
     124        var xValue = xValuesEnumerator.Current;
     125        var yValue = yValuesEnumerator.Current;
     126
     127        if (yValue < (double)decimal.MaxValue && yValue > (double)decimal.MinValue) {
     128          DataPoint dataPoint = new DataPoint(xValue, yValue);
     129          points.Add(dataPoint);
     130        }
    108131      }
    109132    }
     
    166189
    167190      int[] attr = new int[Content.ProblemData.Dataset.Rows + 1]; // add a virtual last row that is again empty to simplify loop further down
    168       foreach (var row in Content.ProblemData.TrainingIndizes) {
     191      foreach (var row in Content.ProblemData.TrainingIndices) {
    169192        attr[row] += 1;
    170193      }
    171       foreach (var row in Content.ProblemData.TestIndizes) {
     194      foreach (var row in Content.ProblemData.TestIndices) {
    172195        attr[row] += 2;
    173196      }
     
    215238        }
    216239      } else if (Content != null) {
    217         IEnumerable<int> indizes = null;
     240        IEnumerable<int> Indices = null;
    218241        IEnumerable<double> predictedValues = null;
    219242
    220243        switch (series.Name) {
    221244          case PROGNOSEDVALUES_TRAINING_SERIES_NAME:
    222             indizes = Content.ProblemData.TrainingIndizes.ToArray();
    223             predictedValues = Content.GetPrognosedValues(Content.ProblemData.TrainingIndizes.Take(1), Content.ProblemData.TrainingPartition.Size.ToEnumerable()).First();
     245            Indices = Content.ProblemData.TrainingIndices.ToArray();
     246            predictedValues = Content.GetPrognosedValues(Content.ProblemData.TrainingIndices.Take(1), Content.ProblemData.TrainingPartition.Size.ToEnumerable()).First();
    224247            break;
    225248          case PROGNOSEDVALUES_TEST_SERIES_NAME:
    226249            testPrognosisStart = Content.ProblemData.TestPartition.Start;
    227             indizes = Content.ProblemData.TestIndizes.ToArray();
    228             predictedValues = Content.GetPrognosedValues(Content.ProblemData.TestIndizes.Take(1), Content.ProblemData.TestPartition.Size.ToEnumerable()).First();
     250            Indices = Content.ProblemData.TestIndices.ToArray();
     251            predictedValues = Content.GetPrognosedValues(Content.ProblemData.TestIndices.Take(1), Content.ProblemData.TestPartition.Size.ToEnumerable()).First();
    229252            break;
    230253        }
    231         series.Points.DataBindXY(indizes, predictedValues);
     254        series.Points.DataBindXY(Indices, predictedValues);
    232255        chart.DataManipulator.InsertEmptyPoints(1, IntervalType.Number, series.Name);
    233256        chart.Legends[series.Legend].ForeColor = Color.Black;
     
    238261
    239262    private void chart_MouseMove(object sender, MouseEventArgs e) {
    240       HitTestResult result = chart.HitTest(e.X, e.Y);
    241       if (result.ChartElementType == ChartElementType.LegendItem && result.Series.Name != TARGETVARIABLE_SERIES_NAME)
    242         Cursor = Cursors.Hand;
    243       else
    244         Cursor = Cursors.Default;
     263      //HitTestResult result = chart.HitTest(e.X, e.Y);
     264      //if (result.ChartElementType == ChartElementType.LegendItem && result.Series.Name != TARGETVARIABLE_SERIES_NAME)
     265      //  Cursor = Cursors.Hand;
     266      //else
     267      //  Cursor = Cursors.Default;
    245268    }
    246269
    247270    private void chart_MouseDown(object sender, MouseEventArgs e) {
    248       HitTestResult result = chart.HitTest(e.X, e.Y);
    249       if (result.ChartElementType == ChartElementType.LegendItem && result.Series.Name != TARGETVARIABLE_SERIES_NAME) {
    250         ToggleSeriesData(result.Series);
    251       } else if (result.ChartElementType == ChartElementType.Axis || result.ChartElementType == ChartElementType.AxisLabels ||
    252         result.ChartElementType == ChartElementType.TickMarks) {
    253         chart.ChartAreas[0].CursorX.SetCursorPixelPosition(new Point(e.X, e.Y), true);
    254         int pos = (int)Math.Round(chart.ChartAreas[0].CursorX.Position);
    255         if (pos >= Content.ProblemData.TestPartition.Start && pos < Content.ProblemData.TestPartition.End) {
    256           testPrognosisStart = pos;
    257           RedrawChart();
    258         }
    259       }
     271      //HitTestResult result = chart.HitTest(e.X, e.Y);
     272      //if (result.ChartElementType == ChartElementType.LegendItem && result.Series.Name != TARGETVARIABLE_SERIES_NAME) {
     273      //  ToggleSeriesData(result.Series);
     274      //} else if (result.ChartElementType == ChartElementType.Axis || result.ChartElementType == ChartElementType.AxisLabels ||
     275      //  result.ChartElementType == ChartElementType.TickMarks) {
     276      //  chart.ChartAreas[0].CursorX.SetCursorPixelPosition(new Point(e.X, e.Y), true);
     277      //  int pos = (int)Math.Round(chart.ChartAreas[0].CursorX.Position);
     278      //  if (pos >= Content.ProblemData.TestPartition.Start && pos < Content.ProblemData.TestPartition.End) {
     279      //    testPrognosisStart = pos;
     280      //    RedrawChart();
     281      //  }
     282      //}
    260283    }
    261284
Note: See TracChangeset for help on using the changeset viewer.