Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/29/17 16:03:05 (7 years ago)
Author:
gkronber
Message:

#2695: added a parameter to DataAnalysisProblemData to select an id column and extended RegressionLinechartViewBase to show the id on the xAxis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dataset-ids-2695/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionLineChartViewBase.cs

    r14531 r15297  
    2020#endregion
    2121using System;
     22using System.Collections;
    2223using System.Collections.Generic;
    2324using System.Drawing;
     25using System.Globalization;
    2426using System.Linq;
    2527using System.Windows.Forms;
    2628using System.Windows.Forms.DataVisualization.Charting;
     29using HeuristicLab.Common;
    2730using HeuristicLab.MainForm;
    2831using HeuristicLab.Visualization.ChartControlsExtensions;
     
    5962    protected abstract void GetTrainingSeries(out int[] idx, out double[] y);
    6063
    61     protected abstract void GetTestSeries(out int[] x, out double[] y);
    62 
    63     protected abstract void GetAllValuesSeries(out int[] x, out double[] y);
     64    protected abstract void GetTestSeries(out int[] idx, out double[] y);
     65
     66    protected abstract void GetAllValuesSeries(out int[] idx, out double[] y);
    6467
    6568    protected virtual void RedrawChart() {
    6669      this.chart.Series.Clear();
    6770      if (Content != null) {
     71        var allIds = Content.ProblemData.AllIds;
    6872        this.chart.ChartAreas[0].AxisX.Minimum = 0;
    69         this.chart.ChartAreas[0].AxisX.Maximum = Content.ProblemData.Dataset.Rows - 1;
     73        this.chart.ChartAreas[0].AxisX.Maximum = Content.ProblemData.AllIndices.Last();
    7074
    7175        this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
    7276        this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = TARGETVARIABLE_SERIES_NAME;
    7377        this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
    74         this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Enumerable.Range(0, Content.ProblemData.Dataset.Rows).ToArray(),
    75           Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.TargetVariable).ToArray());
     78        var ids = Content.ProblemData.AllIds.OfType<object>().Select(o => o.ToString()).ToArray();
     79        var vals = Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.TargetVariable).ToArray();
     80
     81        for (int i = 0; i < ids.Length; i++) {
     82          chart.Series[TARGETVARIABLE_SERIES_NAME].Points.Add(new DataPoint() { AxisLabel = ids[i], XValue = i, YValues = new double[] { vals[i] } });
     83        }
     84        // this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Content.ProblemData.AllIndices.ToArray(),
     85        //   Content.ProblemData.Dataset.GetDoubleValues(Content.ProblemData.TargetVariable).ToArray());
     86        // chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindXY(Content.ProblemData.AllIndices.ToArray(),
     87        //   "AxisLabel", Content.ProblemData.AllIds.OfType<object>().Select(o => o.ToString()).ToArray(), string.Empty);
    7688        // training series
    7789        this.chart.Series.Add(ESTIMATEDVALUES_TRAINING_SERIES_NAME);
     
    133145
    134146        UpdateCursorInterval();
    135         this.UpdateStripLines();
     147        UpdateStripLines();
    136148      }
    137149    }
Note: See TracChangeset for help on using the changeset viewer.