Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/ScatterPlotHelper.cs @ 8498

Last change on this file since 8498 was 8498, checked in by ascheibe, 12 years ago

#1886 added helper classes for generating charts

File size: 2.7 KB
RevLine 
[8498]1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System.Collections.Generic;
23using HeuristicLab.Common;
24using HeuristicLab.Optimization;
25
26namespace HeuristicLab.Analysis.AlgorithmBehavior.Analyzers {
27  public class ScatterPlotHelper {
28
29    private ResultCollection resultsCol;
30    private string chartName;
31    private string xAxisTitle;
32    private string yAxisTitle;
33
34    private ScatterPlot plot;
35    public ScatterPlot Plot {
36      get { return plot; }
37      private set { plot = value; }
38    }
39
40    public void InitializePlot(ResultCollection results, string chartName, string xAxisTitle, string yAxisTitle) {
41      if (!results.ContainsKey(chartName)) {
42        this.chartName = chartName;
43        this.resultsCol = results;
44        this.xAxisTitle = xAxisTitle;
45        this.yAxisTitle = yAxisTitle;
46
47        Initialize();
48
49        results.Add(new Result(chartName, Plot));
50        results.Add(new Result(chartName + " History", new ScatterPlotHistory()));
51      }
52    }
53
54    public void AddPoint(string rowName, Point2D<double> point) {
55      if (!Plot.Rows.ContainsKey(rowName)) {
56        ((ScatterPlotHistory)resultsCol[chartName + " History"].Value).Add(Plot);
57        Initialize();
58        resultsCol[chartName].Value = Plot;
59
60        var points = new List<Point2D<double>>();
61        points.Add(point);
62        ScatterPlotDataRow row = new ScatterPlotDataRow(rowName, null, points);
63        row.VisualProperties.PointStyle = ScatterPlotDataRowVisualProperties.ScatterPlotDataRowPointStyle.Circle;
64        row.VisualProperties.PointSize = 5;
65        Plot.Rows.Add(row);
66      } else {
67        Plot.Rows[rowName].Points.Add(point);
68      }
69    }
70
71    private void Initialize() {
72      Plot = new ScatterPlot(chartName, null);
73      Plot.VisualProperties.XAxisTitle = xAxisTitle;
74      Plot.VisualProperties.YAxisTitle = yAxisTitle;
75    }
76  }
77}
Note: See TracBrowser for help on using the repository browser.